diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 72bf2052627..64b46b00a22 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -34,7 +34,7 @@ jobs: - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.300 + dotnet-version: 10.0.100 - name: Checkout repository uses: actions/checkout@v5 diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index 3c73eaec3b6..fc8bc218fe7 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -43,14 +43,14 @@ jobs: - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.300 + dotnet-version: 10.0.100 - name: Extractor unit tests run: | dotnet tool restore - dotnet test -p:RuntimeFrameworkVersion=9.0.5 extractor/Semmle.Util.Tests - dotnet test -p:RuntimeFrameworkVersion=9.0.5 extractor/Semmle.Extraction.Tests - dotnet test -p:RuntimeFrameworkVersion=9.0.5 autobuilder/Semmle.Autobuild.CSharp.Tests - dotnet test -p:RuntimeFrameworkVersion=9.0.5 autobuilder/Semmle.Autobuild.Cpp.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 extractor/Semmle.Util.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 extractor/Semmle.Extraction.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 autobuilder/Semmle.Autobuild.CSharp.Tests + dotnet test -p:RuntimeFrameworkVersion=10.0.0 autobuilder/Semmle.Autobuild.Cpp.Tests shell: bash stubgentest: runs-on: ubuntu-latest diff --git a/MODULE.bazel b/MODULE.bazel index 91f9ae51f3d..8ba6c2fcd8c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -26,7 +26,7 @@ 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 = "gazelle", version = "0.40.0") -bazel_dep(name = "rules_dotnet", version = "0.19.2-codeql.1") +bazel_dep(name = "rules_dotnet", version = "0.21.5-codeql.1") bazel_dep(name = "googletest", version = "1.14.0.bcr.1") bazel_dep(name = "rules_rust", version = "0.66.0") bazel_dep(name = "zstd", version = "1.5.5.bcr.1") @@ -172,7 +172,7 @@ http_archive( ) dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") -dotnet.toolchain(dotnet_version = "9.0.300") +dotnet.toolchain(dotnet_version = "10.0.100") use_repo(dotnet, "dotnet_toolchains") register_toolchains("@dotnet_toolchains//:all") diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 507c5e80716..4713be3d4f5 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.4.24 + +No user-facing changes. + ## 0.4.23 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.24.md b/actions/ql/lib/change-notes/released/0.4.24.md new file mode 100644 index 00000000000..c481220bc14 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.24.md @@ -0,0 +1,3 @@ +## 0.4.24 + +No user-facing changes. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 482605d096c..b26f62aec37 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.23 +lastReleaseVersion: 0.4.24 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index be9fdac3892..2ef4b7765bf 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.24-dev +version: 0.4.25-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index abe6a3a85be..9a9f8964755 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.16 + +No user-facing changes. + ## 0.6.15 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.16.md b/actions/ql/src/change-notes/released/0.6.16.md new file mode 100644 index 00000000000..ec5c49b7d64 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.16.md @@ -0,0 +1,3 @@ +## 0.6.16 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index d2638922927..169788bff08 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.15 +lastReleaseVersion: 0.6.16 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index decd31da2d1..51286147674 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.16-dev +version: 0.6.17-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/config/identical-files.json b/config/identical-files.json index a33dbb1997b..bdaf567ae17 100644 --- a/config/identical-files.json +++ b/config/identical-files.json @@ -282,6 +282,7 @@ "java/ql/lib/semmle/code/java/internal/OverlayXml.qll", "go/ql/lib/semmle/go/internal/OverlayXml.qll", "python/ql/lib/semmle/python/internal/OverlayXml.qll", - "csharp/ql/lib/semmle/code/csharp/internal/OverlayXml.qll" + "csharp/ql/lib/semmle/code/csharp/internal/OverlayXml.qll", + "cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll" ] } diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index a493369e8dd..e0c8b287adc 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.3 + +No user-facing changes. + ## 6.1.2 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/released/6.1.3.md b/cpp/ql/lib/change-notes/released/6.1.3.md new file mode 100644 index 00000000000..34916dd37c8 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/6.1.3.md @@ -0,0 +1,3 @@ +## 6.1.3 + +No user-facing changes. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 8a2b5999dee..e641a874973 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.2 +lastReleaseVersion: 6.1.3 diff --git a/cpp/ql/lib/ext/empty.model.yml b/cpp/ql/lib/ext/empty.model.yml index 6f160b62d7a..e5202b5ad73 100644 --- a/cpp/ql/lib/ext/empty.model.yml +++ b/cpp/ql/lib/ext/empty.model.yml @@ -9,6 +9,14 @@ extensions: pack: codeql/cpp-all extensible: sinkModel data: [] + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: [] + - addsTo: + pack: codeql/cpp-all + extensible: barrierGuardModel + data: [] - addsTo: pack: codeql/cpp-all extensible: summaryModel diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 4692d1ea27e..76f68c8b83e 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 6.1.3-dev +version: 6.1.4-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 69e32d23ec1..7232326f1b3 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -101,9 +101,10 @@ private import internal.FlowSummaryImpl private import internal.FlowSummaryImpl::Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External -private import internal.ExternalFlowExtensions as Extensions +private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal private import codeql.util.Unit +private import codeql.mad.static.ModelsAsData as SharedMaD /** * A unit class for adding additional source model rows. @@ -144,134 +145,81 @@ predicate sinkModel(string row) { any(SinkModelCsv s).row(row) } /** Holds if `row` is a summary model. */ predicate summaryModel(string row) { any(SummaryModelCsv s).row(row) } -/** Holds if a source model exists for the given parameters. */ -predicate sourceModel( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, string model -) { - exists(string row | - sourceModel(row) and - row.splitAt(";", 0) = namespace and - row.splitAt(";", 1) = type and - row.splitAt(";", 2) = subtypes.toString() and - subtypes = [true, false] and - row.splitAt(";", 3) = name and - row.splitAt(";", 4) = signature and - row.splitAt(";", 5) = ext and - row.splitAt(";", 6) = output and - row.splitAt(";", 7) = kind - ) and - provenance = "manual" and - model = "" - or - exists(QlBuiltins::ExtensionId madId | - Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() - ) +private module MadInput implements SharedMaD::InputSig { + /** Holds if a source model exists for the given parameters. */ + predicate additionalSourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(string row | + sourceModel(row) and + row.splitAt(";", 0) = namespace and + row.splitAt(";", 1) = type and + row.splitAt(";", 2) = subtypes.toString() and + subtypes = [true, false] and + row.splitAt(";", 3) = name and + row.splitAt(";", 4) = signature and + row.splitAt(";", 5) = ext and + row.splitAt(";", 6) = output and + row.splitAt(";", 7) = kind + ) and + provenance = "manual" and + model = "" + } + + /** Holds if a sink model exists for the given parameters. */ + predicate additionalSinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + exists(string row | + sinkModel(row) and + row.splitAt(";", 0) = namespace and + row.splitAt(";", 1) = type and + row.splitAt(";", 2) = subtypes.toString() and + subtypes = [true, false] and + row.splitAt(";", 3) = name and + row.splitAt(";", 4) = signature and + row.splitAt(";", 5) = ext and + row.splitAt(";", 6) = input and + row.splitAt(";", 7) = kind + ) and + provenance = "manual" and + model = "" + } + + /** + * Holds if a summary model exists for the given parameters. + * + * This predicate does not expand `@` to `*`s. + */ + predicate additionalSummaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + exists(string row | + summaryModel(row) and + row.splitAt(";", 0) = namespace and + row.splitAt(";", 1) = type and + row.splitAt(";", 2) = subtypes.toString() and + subtypes = [true, false] and + row.splitAt(";", 3) = name and + row.splitAt(";", 4) = signature and + row.splitAt(";", 5) = ext and + row.splitAt(";", 6) = input and + row.splitAt(";", 7) = output and + row.splitAt(";", 8) = kind + ) and + provenance = "manual" and + model = "" + } + + string namespaceSegmentSeparator() { result = "::" } } -/** Holds if a sink model exists for the given parameters. */ -predicate sinkModel( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance, string model -) { - exists(string row | - sinkModel(row) and - row.splitAt(";", 0) = namespace and - row.splitAt(";", 1) = type and - row.splitAt(";", 2) = subtypes.toString() and - subtypes = [true, false] and - row.splitAt(";", 3) = name and - row.splitAt(";", 4) = signature and - row.splitAt(";", 5) = ext and - row.splitAt(";", 6) = input and - row.splitAt(";", 7) = kind - ) and - provenance = "manual" and - model = "" - or - exists(QlBuiltins::ExtensionId madId | - Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, - madId) and - model = "MaD:" + madId.toString() - ) -} +private module MaD = SharedMaD::ModelsAsData; -/** - * Holds if a summary model exists for the given parameters. - * - * This predicate does not expand `@` to `*`s. - */ -private predicate summaryModel0( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance, string model -) { - exists(string row | - summaryModel(row) and - row.splitAt(";", 0) = namespace and - row.splitAt(";", 1) = type and - row.splitAt(";", 2) = subtypes.toString() and - subtypes = [true, false] and - row.splitAt(";", 3) = name and - row.splitAt(";", 4) = signature and - row.splitAt(";", 5) = ext and - row.splitAt(";", 6) = input and - row.splitAt(";", 7) = output and - row.splitAt(";", 8) = kind - ) and - provenance = "manual" and - model = "" - or - exists(QlBuiltins::ExtensionId madId | - Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() - ) -} - -/** - * Holds if the given extension tuple `madId` should pretty-print as `model`. - * - * This predicate should only be used in tests. - */ -predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance - | - Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, - provenance, madId) - | - model = - "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " - + ext + "; " + output + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance - | - Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, - madId) - | - model = - "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance - | - Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) - | - model = - "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + - "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance - ) -} +import MaD /** * Holds if `input` is `input0`, but with all occurrences of `@` replaced @@ -294,69 +242,13 @@ predicate summaryModel( string input, string output, string kind, string provenance, string model ) { exists(string input0, string output0 | - summaryModel0(namespace, type, subtypes, name, signature, ext, input0, output0, kind, + MaD::summaryModel(namespace, type, subtypes, name, signature, ext, input0, output0, kind, provenance, model) and expandInputAndOutput(input0, input, output0, output, [0 .. Private::getMaxElementContentIndirectionIndex() - 1]) ) } -private predicate relevantNamespace(string namespace) { - sourceModel(namespace, _, _, _, _, _, _, _, _, _) or - sinkModel(namespace, _, _, _, _, _, _, _, _, _) or - summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) -} - -private predicate namespaceLink(string shortns, string longns) { - relevantNamespace(shortns) and - relevantNamespace(longns) and - longns.prefix(longns.indexOf("::")) = shortns -} - -private predicate canonicalNamespace(string namespace) { - relevantNamespace(namespace) and not namespaceLink(_, namespace) -} - -private predicate canonicalNamespaceLink(string namespace, string subns) { - canonicalNamespace(namespace) and - (subns = namespace or namespaceLink(namespace, subns)) -} - -/** - * Holds if MaD framework coverage of `namespace` is `n` api endpoints of the - * kind `(kind, part)`, and `namespaces` is the number of subnamespaces of - * `namespace` which have MaD framework coverage (including `namespace` - * itself). - */ -predicate modelCoverage(string namespace, int namespaces, string kind, string part, int n) { - namespaces = strictcount(string subns | canonicalNamespaceLink(namespace, subns)) and - ( - part = "source" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance, string model | - canonicalNamespaceLink(namespace, subns) and - sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, model) - ) - or - part = "sink" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance, string model | - canonicalNamespaceLink(namespace, subns) and - sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, model) - ) - or - part = "summary" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and - summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, _) - ) - ) -} - /** Provides a query predicate to check the CSV data for validation errors. */ module CsvValidation { private string getInvalidModelInput() { diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll index cd1af34c8d8..1a572c221d9 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -2,6 +2,8 @@ * This module provides extensible predicates for defining MaD models. */ +private import codeql.mad.static.ModelsAsData as SharedMaD + /** * Holds if an external source model exists for the given parameters. */ @@ -18,6 +20,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if an external summary model exists for the given parameters. */ @@ -25,3 +43,16 @@ extensible predicate summaryModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId ); + +/** + * Holds if a neutral model exists for the given parameters. + */ +extensible predicate neutralModel( + string namespace, string type, string name, string signature, string kind, string provenance +); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions + + predicate namespaceGrouping(string group, string namespace) { none() } +} 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 d89ab06ed82..a1d9dd86c40 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -148,6 +148,19 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + private newtype TInterpretNode = TElement_(Element n) or TNode_(Node n) diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index 571f034d85b..b870bbfb9f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -2,6 +2,8 @@ * Defines entity discard predicates for C++ overlay analysis. */ +private import OverlayXml + /** * Holds always for the overlay variant and never for the base variant. * This local predicate is used to define local predicates that behave @@ -20,9 +22,21 @@ private string getLocationFilePath(@location_default loc) { */ overlay[local] private string getSingleLocationFilePath(@element e) { - // @var_decl has a direct location in the var_decls relation - exists(@location_default loc | var_decls(e, _, _, _, loc) | result = getLocationFilePath(loc)) - //TODO: add other kinds of elements with single locations + exists(@location_default loc | + var_decls(e, _, _, _, loc) + or + fun_decls(e, _, _, _, loc) + or + type_decls(e, _, loc) + or + namespace_decls(e, _, loc, _) + or + macroinvocations(e, _, loc, _) + or + preprocdirects(e, _, loc) + | + result = getLocationFilePath(loc) + ) } /** @@ -30,11 +44,17 @@ private string getSingleLocationFilePath(@element e) { */ overlay[local] private string getMultiLocationFilePath(@element e) { - // @variable gets its location(s) from its @var_decl(s) - exists(@var_decl vd, @location_default loc | var_decls(vd, e, _, _, loc) | + exists(@location_default loc | + exists(@var_decl vd | var_decls(vd, e, _, _, loc)) + or + exists(@fun_decl fd | fun_decls(fd, e, _, _, loc)) + or + exists(@type_decl td | type_decls(td, e, loc)) + or + exists(@namespace_decl nd | namespace_decls(nd, e, loc, _)) + | result = getLocationFilePath(loc) ) - //TODO: add other kinds of elements with multiple locations } /** diff --git a/cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll b/cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll new file mode 100644 index 00000000000..95d49f2d611 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/internal/OverlayXml.qll @@ -0,0 +1,46 @@ +overlay[local] +module; + +/** + * A local predicate that always holds for the overlay variant and never holds for the base variant. + * This is used to define local predicates that behave differently for the base and overlay variant. + */ +private predicate isOverlay() { databaseMetadata("isOverlay", "true") } + +private string getXmlFile(@xmllocatable locatable) { + exists(@location_default location, @file file | xmllocations(locatable, location) | + locations_default(location, file, _, _, _, _) and + files(file, result) + ) +} + +private string getXmlFileInBase(@xmllocatable locatable) { + not isOverlay() and + result = getXmlFile(locatable) +} + +/** + * Holds if the given `file` was extracted as part of the overlay and was extracted by the HTML/XML + * extractor. + */ +private predicate overlayXmlExtracted(string file) { + isOverlay() and + exists(@xmllocatable locatable | + not files(locatable, _) and not xmlNs(locatable, _, _, _) and file = getXmlFile(locatable) + ) +} + +/** + * Holds if the given XML `locatable` should be discarded, because it is part of the overlay base + * and is in a file that was also extracted as part of the overlay database. + */ +overlay[discard_entity] +private predicate discardXmlLocatable(@xmllocatable locatable) { + exists(string file | file = getXmlFileInBase(locatable) | + overlayChangedFiles(file) + or + // The HTML/XML extractor is currently not incremental and may extract more files than those + // included in overlayChangedFiles. + overlayXmlExtracted(file) + ) +} 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 285e0dc8419..8dc3513b444 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 @@ -1051,12 +1051,12 @@ module BarrierGuardWithIntParam { } private predicate guardChecksInstr( - IRGuards::Guards_v1::Guard g, IRGuards::GuardsInput::Expr instr, boolean branch, + IRGuards::Guards_v1::Guard g, IRGuards::GuardsInput::Expr instr, IRGuards::GuardValue gv, int indirectionIndex ) { exists(Node node | nodeHasInstruction(node, instr, indirectionIndex) and - guardChecksNode(g, node, branch, indirectionIndex) + guardChecksNode(g, node, gv.asBooleanValue(), indirectionIndex) ) } @@ -1064,8 +1064,8 @@ module BarrierGuardWithIntParam { DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, IRGuards::GuardValue val, int indirectionIndex ) { - IRGuards::Guards_v1::ValidationWrapperWithState::guardChecksDef(g, def, - val, indirectionIndex) + IRGuards::Guards_v1::ParameterizedValidationWrapper::guardChecksDef(g, + def, val, indirectionIndex) } Node getABarrierNode(int indirectionIndex) { diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 813bbda6a8a..a6caf3c6a6b 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.7 + +No user-facing changes. + ## 1.5.6 No user-facing changes. diff --git a/cpp/ql/src/change-notes/released/1.5.7.md b/cpp/ql/src/change-notes/released/1.5.7.md new file mode 100644 index 00000000000..c60c55034a6 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.5.7.md @@ -0,0 +1,3 @@ +## 1.5.7 + +No user-facing changes. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 9a0b3c9461b..227ac5febef 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.6 +lastReleaseVersion: 1.5.7 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 5d26c687851..9161494a401 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.7-dev +version: 1.5.8-dev groups: - cpp - queries diff --git a/csharp/.config/dotnet-tools.json b/csharp/.config/dotnet-tools.json index f6b7213de59..66126b691f4 100644 --- a/csharp/.config/dotnet-tools.json +++ b/csharp/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "paket": { - "version": "9.0.2", + "version": "10.0.0-alpha011", "commands": [ "paket" ] diff --git a/csharp/.vscode/launch.json b/csharp/.vscode/launch.json index 75d27e6708e..3bdd256da0c 100644 --- a/csharp/.vscode/launch.json +++ b/csharp/.vscode/launch.json @@ -6,7 +6,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Standalone/bin/Debug/net9.0/Semmle.Extraction.CSharp.Standalone.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Standalone/bin/Debug/net10.0/Semmle.Extraction.CSharp.Standalone.dll", "args": [], // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/test/library-tests/standalone/standalonemode", @@ -35,7 +35,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/autobuilder/Semmle.Autobuild.CSharp/bin/Debug/net9.0/Semmle.Autobuild.CSharp.dll", + "program": "${workspaceFolder}/autobuilder/Semmle.Autobuild.CSharp/bin/Debug/net10.0/Semmle.Autobuild.CSharp.dll", // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/integration-tests/all-platforms/autobuild", "stopAtEntry": true, @@ -53,7 +53,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net9.0/Semmle.Extraction.CSharp.Driver.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net10.0/Semmle.Extraction.CSharp.Driver.dll", "stopAtEntry": true, "args": [ "--binlog", @@ -66,7 +66,7 @@ "type": "coreclr", "request": "launch", "preLaunchTask": "dotnet: build", - "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net9.0/Semmle.Extraction.CSharp.Driver.dll", + "program": "${workspaceFolder}/extractor/Semmle.Extraction.CSharp.Driver/bin/Debug/net10.0/Semmle.Extraction.CSharp.Driver.dll", // Set the path to the folder that should be extracted: "cwd": "${workspaceFolder}/ql/test/library-tests/dataflow/local", "args": [ diff --git a/csharp/.vscode/settings.json b/csharp/.vscode/settings.json index f41ad2872ff..559f9b16b98 100644 --- a/csharp/.vscode/settings.json +++ b/csharp/.vscode/settings.json @@ -10,5 +10,5 @@ "omnisharp.enableRoslynAnalyzers": true, "csharpFormatUsings.splitGroups": false, "csharpFormatUsings.sortOrder": "Xunit System Microsoft Semmle.Util Semmle", - "dotnet.defaultSolution": "CSharp.sln" -} \ No newline at end of file + "dotnet.defaultSolution": "CSharp.slnx" +} diff --git a/csharp/CSharp.sln b/csharp/CSharp.sln deleted file mode 100644 index f4cde4624d4..00000000000 --- a/csharp/CSharp.sln +++ /dev/null @@ -1,118 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2036 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Util", "extractor\Semmle.Util\Semmle.Util.csproj", "{CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp", "extractor\Semmle.Extraction.CSharp\Semmle.Extraction.CSharp.csproj", "{C4D62DA0-B64B-440B-86DC-AB52318CB8BF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.DependencyFetching", "extractor\Semmle.Extraction.CSharp.DependencyFetching\Semmle.Extraction.CSharp.DependencyFetching.csproj", "{541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Standalone", "extractor\Semmle.Extraction.CSharp.Standalone\Semmle.Extraction.CSharp.Standalone.csproj", "{D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.StubGenerator", "extractor\Semmle.Extraction.CSharp.StubGenerator\Semmle.Extraction.CSharp.StubGenerator.csproj", "{B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Util", "extractor\Semmle.Extraction.CSharp.Util\Semmle.Extraction.CSharp.Util.csproj", "{998A0D4C-8BFC-4513-A28D-4816AFB89882}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.CSharp.Driver", "extractor\Semmle.Extraction.CSharp.Driver\Semmle.Extraction.CSharp.Driver.csproj", "{C36453BF-0C82-448A-B15D-26947503A2D3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Extraction.Tests", "extractor\Semmle.Extraction.Tests\Semmle.Extraction.Tests.csproj", "{CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semmle.Util.Tests", "extractor\Semmle.Util.Tests\Semmle.Util.Tests.csproj", "{55A620F0-23F6-440D-A5BA-0567613B3C0F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Shared", "autobuilder\Semmle.Autobuild.Shared\Semmle.Autobuild.Shared.csproj", "{133F2B5B-FD25-4BD9-B34C-062CC6BB4178}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp", "autobuilder\Semmle.Autobuild.CSharp\Semmle.Autobuild.CSharp.csproj", "{F3C07863-3759-4A0B-B777-8A0E0FDB1A41}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.CSharp.Tests", "autobuilder\Semmle.Autobuild.CSharp.Tests\Semmle.Autobuild.CSharp.Tests.csproj", "{34256E8F-866A-46C1-800E-3DF69FD1DCB7}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Extraction.CSharp.DependencyStubGenerator", "extractor\Semmle.Extraction.CSharp.DependencyStubGenerator\Semmle.Extraction.CSharp.DependencyStubGenerator.csproj", "{0EDA21A3-ADD8-4C10-B494-58B12B526B76}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Cpp", "autobuilder\Semmle.Autobuild.Cpp\Semmle.Autobuild.Cpp.csproj", "{125C4FB7-34DA-442A-9095-3EA1514270CD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semmle.Autobuild.Cpp.Tests", "autobuilder\Semmle.Autobuild.Cpp.Tests\Semmle.Autobuild.Cpp.Tests.csproj", "{72F369B7-0707-401A-802F-D526F272F9EE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDD7AD69-0FD8-40F0-A9DA-F1077A2A85D6}.Release|Any CPU.Build.0 = Release|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Debug|Any CPU.Build.0 = Debug|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {81EAAD75-4BE1-44E4-91DF-20778216DB64}.Release|Any CPU.Build.0 = Release|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4D62DA0-B64B-440B-86DC-AB52318CB8BF}.Release|Any CPU.Build.0 = Release|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {399A1579-68F0-40F4-9A23-F241BA697F9C}.Release|Any CPU.Build.0 = Release|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {541D1AC5-E42C-4AB2-A1A4-C2355CE2A2EF}.Release|Any CPU.Build.0 = Release|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D00E7D25-0FA0-48EC-B048-CD60CE1B30D8}.Release|Any CPU.Build.0 = Release|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EFA400B3-C1CE-446F-A4E2-8B44E61EF47C}.Release|Any CPU.Build.0 = Release|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C36453BF-0C82-448A-B15D-26947503A2D3}.Release|Any CPU.Build.0 = Release|Any CPU - {CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CD8D3F90-AD2E-4BB5-8E82-B94AA293864A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55A620F0-23F6-440D-A5BA-0567613B3C0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55A620F0-23F6-440D-A5BA-0567613B3C0F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55A620F0-23F6-440D-A5BA-0567613B3C0F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Debug|Any CPU.Build.0 = Debug|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Release|Any CPU.ActiveCfg = Release|Any CPU - {133F2B5B-FD25-4BD9-B34C-062CC6BB4178}.Release|Any CPU.Build.0 = Release|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F3C07863-3759-4A0B-B777-8A0E0FDB1A41}.Release|Any CPU.Build.0 = Release|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34256E8F-866A-46C1-800E-3DF69FD1DCB7}.Release|Any CPU.Build.0 = Release|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7C9FD47-A78C-4C20-AC29-B0AE638ADE9D}.Release|Any CPU.Build.0 = Release|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Debug|Any CPU.Build.0 = Debug|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Release|Any CPU.ActiveCfg = Release|Any CPU - {998A0D4C-8BFC-4513-A28D-4816AFB89882}.Release|Any CPU.Build.0 = Release|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0EDA21A3-ADD8-4C10-B494-58B12B526B76}.Release|Any CPU.Build.0 = Release|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {125C4FB7-34DA-442A-9095-3EA1514270CD}.Release|Any CPU.Build.0 = Release|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {72F369B7-0707-401A-802F-D526F272F9EE}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E2B2BAC0-D55C-45DB-8CB3-8CEBA86FB547} - EndGlobalSection -EndGlobal diff --git a/csharp/CSharp.slnx b/csharp/CSharp.slnx new file mode 100644 index 00000000000..0291d720489 --- /dev/null +++ b/csharp/CSharp.slnx @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/csharp/Directory.Build.props b/csharp/Directory.Build.props index 0c8a2bc1526..8046ab10440 100644 --- a/csharp/Directory.Build.props +++ b/csharp/Directory.Build.props @@ -1,7 +1,7 @@ - net9.0 + net10.0 win-x64;linux-x64;osx-x64 enable true diff --git a/csharp/actions/create-extractor-pack/action.yml b/csharp/actions/create-extractor-pack/action.yml index b6737b45ad6..36f531f1b74 100644 --- a/csharp/actions/create-extractor-pack/action.yml +++ b/csharp/actions/create-extractor-pack/action.yml @@ -7,7 +7,7 @@ runs: - name: Setup dotnet uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.300 + dotnet-version: 10.0.100 - name: Build Extractor shell: bash run: scripts/create-extractor-pack.sh diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel index 67f3470712d..9590f7f86ca 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BUILD.bazel @@ -13,6 +13,5 @@ codeql_xunit_test( "//csharp/autobuilder/Semmle.Autobuild.CSharp:bin/Semmle.Autobuild.CSharp", "//csharp/autobuilder/Semmle.Autobuild.Shared", "@paket.main//microsoft.net.test.sdk", - "@paket.main//system.io.filesystem", ], ) diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references index 83bb87685b1..0582094502a 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/paket.references @@ -1,4 +1,3 @@ -System.IO.FileSystem xunit xunit.runner.visualstudio Microsoft.NET.Test.Sdk diff --git a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel index ad8f6e3d1f1..0a718903a95 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel +++ b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BUILD.bazel @@ -13,6 +13,5 @@ codeql_xunit_test( "//csharp/autobuilder/Semmle.Autobuild.Cpp:bin/Semmle.Autobuild.Cpp", "//csharp/autobuilder/Semmle.Autobuild.Shared", "@paket.main//microsoft.net.test.sdk", - "@paket.main//system.io.filesystem", ], ) diff --git a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references index 83bb87685b1..0582094502a 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references +++ b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/paket.references @@ -1,4 +1,3 @@ -System.IO.FileSystem xunit xunit.runner.visualstudio Microsoft.NET.Test.Sdk diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs index 919e3821750..a15235d3502 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Autobuilder.cs @@ -182,8 +182,16 @@ namespace Semmle.Autobuild.Shared if (ret is not null) return ret; + // Then look for language specific solution files, e.g. `.slnx` files + if (Options.Language.SolutionExtension is string solutionExtension) + { + ret = FindFiles(solutionExtension, f => new Solution(this, f, false))?.ToList(); + if (ret is not null) + return ret; + } + // Finally look for language specific project files, e.g. `.csproj` files - ret = FindFiles(this.Options.Language.ProjectExtension, f => new Project(this, f))?.ToList(); + ret = FindFiles(Options.Language.ProjectExtension, f => new Project(this, f))?.ToList(); return ret ?? new List(); }); diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel b/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel index bc968ff8a4d..41a53574487 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/BUILD.bazel @@ -12,5 +12,6 @@ codeql_csharp_library( deps = [ "//csharp/extractor/Semmle.Util", "@paket.main//microsoft.build", + "@paket.main//microsoft.visualstudio.solutionpersistence", ], ) diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs b/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs index 7a98a01de25..5cf0c4a8487 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/Solution.cs @@ -4,12 +4,11 @@ using System.IO; using System.Linq; using Microsoft.Build.Construction; using Microsoft.Build.Exceptions; -using Semmle.Util.Logging; namespace Semmle.Autobuild.Shared { /// - /// A solution file, extension .sln. + /// A solution file, extension .sln or .slnx. /// public interface ISolution : IProjectOrSolution { diff --git a/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references b/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references index ec65ce95b91..ca431a6703e 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references +++ b/csharp/autobuilder/Semmle.Autobuild.Shared/paket.references @@ -1 +1,2 @@ Microsoft.Build +Microsoft.VisualStudio.SolutionPersistence diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index 4713679cd23..d71bc79b3c0 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -40,6 +40,7 @@ Microsoft.VisualBasic,,,6,,,,,,,,,,,,,,,,,,,1,5 Microsoft.Win32,,4,2,,,,,,,,,,,,,,,,,,4,,2 Mono.Linker,,,278,,,,,,,,,,,,,,,,,,,127,151 MySql.Data.MySqlClient,48,,,,,,,,,,,,48,,,,,,,,,, +NHibernate,3,,,,,,,,,,,,3,,,,,,,,,, Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,,73,18 ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,,7, SourceGenerators,,,5,,,,,,,,,,,,,,,,,,,,5 diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index 061662f9714..8128c27dccd 100644 --- a/csharp/documentation/library-coverage/coverage.rst +++ b/csharp/documentation/library-coverage/coverage.rst @@ -9,6 +9,6 @@ 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,12241,54,5 - Others,"``Amazon.Lambda.APIGatewayEvents``, ``Amazon.Lambda.Core``, ``Dapper``, ``ILCompiler``, ``ILLink.RoslynAnalyzer``, ``ILLink.Shared``, ``ILLink.Tasks``, ``Internal.IL``, ``Internal.Pgo``, ``Internal.TypeSystem``, ``Microsoft.ApplicationBlocks.Data``, ``Microsoft.AspNetCore.Components``, ``Microsoft.AspNetCore.Http``, ``Microsoft.AspNetCore.Mvc``, ``Microsoft.AspNetCore.WebUtilities``, ``Microsoft.CSharp``, ``Microsoft.Data.SqlClient``, ``Microsoft.Diagnostics.Tools.Pgo``, ``Microsoft.DotNet.Build.Tasks``, ``Microsoft.DotNet.PlatformAbstractions``, ``Microsoft.EntityFrameworkCore``, ``Microsoft.Extensions.Caching.Distributed``, ``Microsoft.Extensions.Caching.Memory``, ``Microsoft.Extensions.Configuration``, ``Microsoft.Extensions.DependencyInjection``, ``Microsoft.Extensions.DependencyModel``, ``Microsoft.Extensions.Diagnostics.Metrics``, ``Microsoft.Extensions.FileProviders``, ``Microsoft.Extensions.FileSystemGlobbing``, ``Microsoft.Extensions.Hosting``, ``Microsoft.Extensions.Http``, ``Microsoft.Extensions.Logging``, ``Microsoft.Extensions.Options``, ``Microsoft.Extensions.Primitives``, ``Microsoft.Interop``, ``Microsoft.JSInterop``, ``Microsoft.NET.Build.Tasks``, ``Microsoft.VisualBasic``, ``Microsoft.Win32``, ``Mono.Linker``, ``MySql.Data.MySqlClient``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2257,159,4 - Totals,,107,14505,407,9 + 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,2257,162,4 + Totals,,107,14505,410,9 diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel index 0dc2a366125..aefa581837e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/BUILD.bazel @@ -15,6 +15,7 @@ codeql_csharp_library( deps = [ "//csharp/extractor/Semmle.Extraction.CSharp", "//csharp/extractor/Semmle.Util", + "@paket.main//microsoft.visualstudio.solutionpersistence", "@paket.main//newtonsoft.json", "@paket.main//nuget.versioning", ], diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs index c60127c6835..9d3d79e4c4f 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DotNet.cs @@ -157,7 +157,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } // The version number should be kept in sync with the version .NET version used for building the application. - public const string LatestDotNetSdkVersion = "9.0.300"; + public const string LatestDotNetSdkVersion = "10.0.100"; public static ReadOnlyDictionary MinimalEnvironment => IDotNetCliInvoker.MinimalEnvironment; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs index 1a1e9934e8c..e33e6703b43 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FilePathFilter.cs @@ -55,12 +55,12 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } else { - logger.LogInfo($"Invalid filter: {filter}"); + logger.LogWarning($"Invalid filter: {filter}"); continue; } var regex = new FilePattern(filterText).RegexPattern; - logger.LogInfo($"Filtering {(include ? "in" : "out")} files matching '{regex}'. Original glob filter: '{filter}'"); + logger.LogDebug($"Filtering {(include ? "in" : "out")} files matching '{regex}'. Original glob filter: '{filter}'"); pathFilters.Add(new PathFilter(new Regex(regex, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline), include)); } @@ -91,7 +91,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching if (!include) { - logger.LogInfo($"Excluding '{f.FileInfo.FullName}'"); + logger.LogDebug($"Excluding '{f.FileInfo.FullName}'"); } return include; diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs index e908855df0a..9e6b810b95e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileProvider.cs @@ -37,7 +37,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching smallNonBinary = new Lazy(() => ReturnAndLogFiles("small non-binary", SelectSmallFiles(allNonBinary.Value).SelectFileNames().ToArray())); sources = new Lazy(() => SelectTextFileNamesByExtension("source", ".cs")); projects = new Lazy(() => SelectTextFileNamesByExtension("project", ".csproj")); - solutions = new Lazy(() => SelectTextFileNamesByExtension("solution", ".sln")); + solutions = new Lazy(() => SelectTextFileNamesByExtension("solution", ".sln", ".slnx")); dlls = new Lazy(() => SelectBinaryFileNamesByExtension("DLL", ".dll")); nugetConfigs = new Lazy(() => SelectTextFileNamesByName("nuget.config")); globalJsons = new Lazy(() => SelectTextFileNamesByName("global.json")); diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs index 6858cd77f4a..f143ec8f3d2 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SolutionFile.cs @@ -6,7 +6,7 @@ using Microsoft.Build.Construction; namespace Semmle.Extraction.CSharp.DependencyFetching { /// - /// Access data in a .sln file. + /// Access data in a .sln or .slnx file. /// internal class SolutionFile { @@ -17,7 +17,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching /// /// Read the file. /// - /// The filename of the .sln. + /// The filename of the .sln or .slnx. public SolutionFile(string filename) { // SolutionFile.Parse() expects a rooted path. @@ -26,7 +26,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching } /// - /// Projects directly included in the .sln file. + /// Projects directly included in the .sln or .slnx file. /// public IEnumerable MsBuildProjects { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references index f4c783b379a..b70a0ef65be 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/paket.references @@ -1,2 +1,3 @@ +Microsoft.VisualStudio.SolutionPersistence Newtonsoft.Json NuGet.Versioning diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj index 9ec28298950..2f05a1f9fe4 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyStubGenerator/Semmle.Extraction.CSharp.DependencyStubGenerator.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 Semmle.Extraction.CSharp.DependencyStubGenerator Semmle.Extraction.CSharp.DependencyStubGenerator enable @@ -14,4 +14,4 @@ - \ No newline at end of file + diff --git a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references index 9a2eede6b35..ec65ce95b91 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references +++ b/csharp/extractor/Semmle.Extraction.CSharp.Standalone/paket.references @@ -1,5 +1 @@ Microsoft.Build -Microsoft.Win32.Primitives -System.Net.Primitives -System.Security.Principal -System.Threading.ThreadPool diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs index 2c3b25b2e1c..14d9b548015 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Constructor.cs @@ -74,6 +74,7 @@ namespace Semmle.Extraction.CSharp.Entities { case SyntaxKind.BaseConstructorInitializer: initializerType = Symbol.ContainingType.BaseType!; + ExtractObjectInitCall(trapFile); break; case SyntaxKind.ThisConstructorInitializer: initializerType = Symbol.ContainingType; @@ -90,10 +91,12 @@ namespace Semmle.Extraction.CSharp.Entities var primaryInfo = Context.GetSymbolInfo(primaryInitializer); var primarySymbol = primaryInfo.Symbol; + ExtractObjectInitCall(trapFile); ExtractSourceInitializer(trapFile, primarySymbol?.ContainingType, (IMethodSymbol?)primarySymbol, primaryInitializer.ArgumentList, primaryInitializer.GetLocation()); } else if (Symbol.MethodKind is MethodKind.Constructor) { + ExtractObjectInitCall(trapFile); var baseType = Symbol.ContainingType.BaseType; if (baseType is null) { @@ -127,6 +130,27 @@ namespace Semmle.Extraction.CSharp.Entities } } + private void ExtractObjectInitCall(TextWriter trapFile) + { + var target = ObjectInitMethod.Create(Context, ContainingType!); + + var type = Context.Compilation.GetSpecialType(SpecialType.System_Void); + + var info = new ExpressionInfo(Context, + AnnotatedTypeSymbol.CreateNotAnnotated(type), + Location, + Kinds.ExprKind.METHOD_INVOCATION, + this, + -2, + isCompilerGenerated: true, + null); + var obinitCall = new Expression(info); + + trapFile.expr_call(obinitCall, target); + + Expressions.This.CreateImplicit(Context, Symbol.ContainingType, Location, obinitCall, -1); + } + private void ExtractSourceInitializer(TextWriter trapFile, ITypeSymbol? type, IMethodSymbol? symbol, ArgumentListSyntax arguments, Microsoft.CodeAnalysis.Location location) { var initInfo = new ExpressionInfo(Context, diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs new file mode 100644 index 00000000000..278f2b18798 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/IMethodEntity.cs @@ -0,0 +1,9 @@ +namespace Semmle.Extraction.CSharp.Entities +{ + /// + /// Marker interface for method entities. + /// + public interface IMethodEntity : IEntity + { + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs index c1b0f1a65bc..c92c561f31b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs @@ -9,7 +9,7 @@ using Semmle.Extraction.CSharp.Populators; namespace Semmle.Extraction.CSharp.Entities { - internal abstract class Method : CachedSymbol, IExpressionParentEntity, IStatementParentEntity + internal abstract class Method : CachedSymbol, IExpressionParentEntity, IStatementParentEntity, IMethodEntity { protected Method(Context cx, IMethodSymbol init) : base(cx, init) { } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs new file mode 100644 index 00000000000..81c08ec35d5 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/ObjectInitMethod.cs @@ -0,0 +1,56 @@ +using System.IO; +using Microsoft.CodeAnalysis; + +namespace Semmle.Extraction.CSharp.Entities +{ + internal sealed class ObjectInitMethod : CachedEntity, IMethodEntity + { + private Type ContainingType { get; } + + private ObjectInitMethod(Context cx, Type containingType) + : base(cx) + { + this.ContainingType = containingType; + } + + private static readonly string Name = ""; + + public static ObjectInitMethod Create(Context cx, Type containingType) + { + return ObjectInitMethodFactory.Instance.CreateEntity(cx, (typeof(ObjectInitMethod), containingType), containingType); + } + + public override void Populate(TextWriter trapFile) + { + var returnType = Type.Create(Context, Context.Compilation.GetSpecialType(SpecialType.System_Void)); + + trapFile.methods(this, Name, ContainingType, returnType.TypeRef, this); + + trapFile.compiler_generated(this); + + trapFile.method_location(this, Context.CreateLocation(ReportingLocation)); + } + + public override void WriteId(EscapingTextWriter trapFile) + { + trapFile.WriteSubId(ContainingType); + trapFile.Write("."); + trapFile.Write(Name); + trapFile.Write(";method"); + } + + public override Microsoft.CodeAnalysis.Location? ReportingLocation => ContainingType.ReportingLocation; + + public override bool NeedsPopulation => true; + + public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.NoLabel; + + private class ObjectInitMethodFactory : CachedEntityFactory + { + public static ObjectInitMethodFactory Instance { get; } = new ObjectInitMethodFactory(); + + public override ObjectInitMethod Create(Context cx, Type containingType) => + new ObjectInitMethod(cx, containingType); + } + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs b/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs index 8960b6adb67..b789eaa2e9c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs @@ -175,7 +175,7 @@ namespace Semmle.Extraction.CSharp internal static void expr_argument_name(this TextWriter trapFile, Expression expr, string name) => trapFile.WriteTuple("expr_argument_name", expr, name); - internal static void expr_call(this TextWriter trapFile, Expression expr, Method target) => + internal static void expr_call(this TextWriter trapFile, Expression expr, IMethodEntity target) => trapFile.WriteTuple("expr_call", expr, target); internal static void expr_flowstate(this TextWriter trapFile, Expression expr, int flowState) => @@ -247,10 +247,10 @@ namespace Semmle.Extraction.CSharp internal static void localvars(this TextWriter trapFile, LocalVariable key, VariableKind kind, string name, int @var, Type type, Expression expr) => trapFile.WriteTuple("localvars", key, (int)kind, name, @var, type, expr); - internal static void method_location(this TextWriter trapFile, Method method, Location location) => + internal static void method_location(this TextWriter trapFile, IMethodEntity method, Location location) => trapFile.WriteTuple("method_location", method, location); - internal static void methods(this TextWriter trapFile, Method method, string name, Type declType, Type retType, Method originalDefinition) => + internal static void methods(this TextWriter trapFile, IMethodEntity method, string name, Type declType, Type retType, IMethodEntity originalDefinition) => trapFile.WriteTuple("methods", method, name, declType, retType, originalDefinition); internal static void modifiers(this TextWriter trapFile, Label entity, string modifier) => diff --git a/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel b/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel index 4d13f7f4fb8..2b27e4048ba 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel +++ b/csharp/extractor/Semmle.Extraction.Tests/BUILD.bazel @@ -16,6 +16,5 @@ codeql_xunit_test( "//csharp/extractor/Semmle.Extraction.CSharp.StubGenerator", "//csharp/extractor/Semmle.Util", "@paket.main//microsoft.net.test.sdk", - "@paket.main//system.io.filesystem", ], ) diff --git a/csharp/extractor/Semmle.Extraction.Tests/paket.references b/csharp/extractor/Semmle.Extraction.Tests/paket.references index 83bb87685b1..0582094502a 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/paket.references +++ b/csharp/extractor/Semmle.Extraction.Tests/paket.references @@ -1,4 +1,3 @@ -System.IO.FileSystem xunit xunit.runner.visualstudio Microsoft.NET.Test.Sdk diff --git a/csharp/extractor/Semmle.Util/Language.cs b/csharp/extractor/Semmle.Util/Language.cs index fa3d71b6154..a895a6e3e06 100644 --- a/csharp/extractor/Semmle.Util/Language.cs +++ b/csharp/extractor/Semmle.Util/Language.cs @@ -2,21 +2,27 @@ { public sealed class Language { - public static Language Cpp { get; } = new Language(".vcxproj", "CPP"); - public static Language CSharp { get; } = new Language(".csproj", "CSHARP"); + public static Language Cpp { get; } = new Language("CPP", ".vcxproj"); + public static Language CSharp { get; } = new Language("CSHARP", ".csproj", ".slnx"); public bool ProjectFileHasThisLanguage(string path) => System.IO.Path.GetExtension(path) == ProjectExtension; public string ProjectExtension { get; } + public string? SolutionExtension { get; } public string UpperCaseName { get; } - private Language(string extension, string name) + private Language(string name, string projectExtension) { - ProjectExtension = extension; + ProjectExtension = projectExtension; UpperCaseName = name; } + private Language(string name, string projectExtension, string solutionExtension) : this(name, projectExtension) + { + SolutionExtension = solutionExtension; + } + public override string ToString() => ProjectExtension == Cpp.ProjectExtension ? "C/C++" : "C#"; } diff --git a/csharp/paket.dependencies b/csharp/paket.dependencies index 336a61e40e0..61cb1d3d8d9 100644 --- a/csharp/paket.dependencies +++ b/csharp/paket.dependencies @@ -1,10 +1,10 @@ -framework: net9.0 +framework: net10.0 storage: none source https://api.nuget.org/v3/index.json # behave like nuget in choosing transitive dependency versions strategy: max -nuget Basic.CompilerLog.Util 0.9.21 +nuget Basic.CompilerLog.Util 0.9.25 nuget Mono.Posix.NETStandard nuget Newtonsoft.Json nuget NuGet.Versioning @@ -12,11 +12,7 @@ nuget xunit nuget xunit.runner.visualstudio nuget xunit.runner.utility nuget Microsoft.NET.Test.Sdk -nuget Microsoft.CodeAnalysis.CSharp 4.14.0 -nuget Microsoft.CodeAnalysis 4.14.0 -nuget Microsoft.Build 17.14.28 -nuget Microsoft.Win32.Primitives -nuget System.Net.Primitives -nuget System.Security.Principal -nuget System.Threading.ThreadPool -nuget System.IO.FileSystem +nuget Microsoft.CodeAnalysis.CSharp 5.0.0 +nuget Microsoft.CodeAnalysis 5.0.0 +nuget Microsoft.Build 18.0.2 +nuget Microsoft.VisualStudio.SolutionPersistence diff --git a/csharp/paket.lock b/csharp/paket.lock index 7e5b0d5bc94..42d537cc181 100644 --- a/csharp/paket.lock +++ b/csharp/paket.lock @@ -1,9 +1,9 @@ STORAGE: NONE STRATEGY: MAX -RESTRICTION: == net9.0 +RESTRICTION: == net10.0 NUGET remote: https://api.nuget.org/v3/index.json - Basic.CompilerLog.Util (0.9.21) + Basic.CompilerLog.Util (0.9.25) MessagePack (>= 3.1.4) Microsoft.Bcl.Memory (>= 9.0.10) Microsoft.CodeAnalysis (>= 4.8) @@ -12,198 +12,133 @@ NUGET Microsoft.Extensions.ObjectPool (>= 9.0.10) MSBuild.StructuredLogger (>= 2.3.71) NaturalSort.Extension (>= 4.4) - Humanizer.Core (2.14.1) + NuGet.Versioning (>= 6.14) + Humanizer.Core (3.0.1) MessagePack (3.1.4) MessagePack.Annotations (>= 3.1.4) MessagePackAnalyzer (>= 3.1.4) Microsoft.NET.StringTools (>= 17.11.4) MessagePack.Annotations (3.1.4) MessagePackAnalyzer (3.1.4) - Microsoft.Bcl.AsyncInterfaces (9.0.10) - Microsoft.Bcl.Memory (9.0.10) - Microsoft.Build (17.14.28) - Microsoft.Build.Framework (>= 17.14.28) - Microsoft.NET.StringTools (>= 17.14.28) + Microsoft.Bcl.AsyncInterfaces (10.0.1) + Microsoft.Bcl.Memory (10.0.1) + Microsoft.Build (18.0.2) + Microsoft.Build.Framework (>= 18.0.2) + Microsoft.NET.StringTools (>= 18.0.2) System.Configuration.ConfigurationManager (>= 9.0) System.Diagnostics.EventLog (>= 9.0) System.Reflection.MetadataLoadContext (>= 9.0) - System.Security.Cryptography.ProtectedData (>= 9.0) - Microsoft.Build.Framework (17.14.28) - Microsoft.Build.Utilities.Core (17.14.28) - Microsoft.Build.Framework (>= 17.14.28) - Microsoft.NET.StringTools (>= 17.14.28) - System.Collections.Immutable (>= 9.0) + System.Security.Cryptography.ProtectedData (>= 9.0.6) + Microsoft.Build.Framework (18.0.2) + Microsoft.Build.Utilities.Core (18.0.2) + Microsoft.Build.Framework (>= 18.0.2) + Microsoft.NET.StringTools (>= 18.0.2) System.Configuration.ConfigurationManager (>= 9.0) System.Diagnostics.EventLog (>= 9.0) - System.Security.Cryptography.ProtectedData (>= 9.0) - Microsoft.CodeAnalysis (4.14) + System.Security.Cryptography.ProtectedData (>= 9.0.6) + Microsoft.CodeAnalysis (5.0) Humanizer.Core (>= 2.14.1) Microsoft.Bcl.AsyncInterfaces (>= 9.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.CSharp.Workspaces (4.14) - Microsoft.CodeAnalysis.VisualBasic.Workspaces (4.14) - System.Buffers (>= 4.5.1) + Microsoft.CodeAnalysis.CSharp.Workspaces (5.0) + Microsoft.CodeAnalysis.VisualBasic.Workspaces (5.0) + System.Buffers (>= 4.6) System.Collections.Immutable (>= 9.0) System.Composition (>= 9.0) System.IO.Pipelines (>= 9.0) - System.Memory (>= 4.5.5) - System.Numerics.Vectors (>= 4.5) + System.Memory (>= 4.6) + System.Numerics.Vectors (>= 4.6) System.Reflection.Metadata (>= 9.0) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Text.Encoding.CodePages (>= 7.0) - System.Threading.Channels (>= 7.0) - System.Threading.Tasks.Extensions (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 6.1) + System.Text.Encoding.CodePages (>= 8.0) + System.Threading.Channels (>= 8.0) + System.Threading.Tasks.Extensions (>= 4.6) Microsoft.CodeAnalysis.Analyzers (3.11) - Microsoft.CodeAnalysis.Common (4.14) + Microsoft.CodeAnalysis.Common (5.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - System.Collections.Immutable (>= 9.0) - System.Reflection.Metadata (>= 9.0) - Microsoft.CodeAnalysis.CSharp (4.14) + Microsoft.CodeAnalysis.CSharp (5.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - System.Collections.Immutable (>= 9.0) - System.Reflection.Metadata (>= 9.0) - Microsoft.CodeAnalysis.CSharp.Workspaces (4.14) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.CSharp.Workspaces (5.0) Humanizer.Core (>= 2.14.1) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - Microsoft.CodeAnalysis.CSharp (4.14) - Microsoft.CodeAnalysis.Workspaces.Common (4.14) - System.Collections.Immutable (>= 9.0) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.CSharp (5.0) + Microsoft.CodeAnalysis.Workspaces.Common (5.0) System.Composition (>= 9.0) - System.IO.Pipelines (>= 9.0) - System.Reflection.Metadata (>= 9.0) - System.Threading.Channels (>= 7.0) - Microsoft.CodeAnalysis.VisualBasic (4.14) + Microsoft.CodeAnalysis.VisualBasic (5.0) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - System.Collections.Immutable (>= 9.0) - System.Reflection.Metadata (>= 9.0) - Microsoft.CodeAnalysis.VisualBasic.Workspaces (4.14) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.VisualBasic.Workspaces (5.0) Humanizer.Core (>= 2.14.1) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - Microsoft.CodeAnalysis.VisualBasic (4.14) - Microsoft.CodeAnalysis.Workspaces.Common (4.14) - System.Collections.Immutable (>= 9.0) + Microsoft.CodeAnalysis.Common (5.0) + Microsoft.CodeAnalysis.VisualBasic (5.0) + Microsoft.CodeAnalysis.Workspaces.Common (5.0) System.Composition (>= 9.0) - System.IO.Pipelines (>= 9.0) - System.Reflection.Metadata (>= 9.0) - System.Threading.Channels (>= 7.0) - Microsoft.CodeAnalysis.Workspaces.Common (4.14) + Microsoft.CodeAnalysis.Workspaces.Common (5.0) Humanizer.Core (>= 2.14.1) Microsoft.CodeAnalysis.Analyzers (>= 3.11) - Microsoft.CodeAnalysis.Common (4.14) - System.Collections.Immutable (>= 9.0) + Microsoft.CodeAnalysis.Common (5.0) System.Composition (>= 9.0) - System.IO.Pipelines (>= 9.0) - System.Reflection.Metadata (>= 9.0) - System.Threading.Channels (>= 7.0) - Microsoft.CodeCoverage (18.0) - Microsoft.Extensions.ObjectPool (9.0.10) - Microsoft.NET.StringTools (17.14.28) - Microsoft.NET.Test.Sdk (18.0) - Microsoft.CodeCoverage (>= 18.0) - Microsoft.TestPlatform.TestHost (>= 18.0) - Microsoft.NETCore.Platforms (7.0.4) - Microsoft.NETCore.Targets (5.0) - Microsoft.TestPlatform.ObjectModel (18.0) + Microsoft.CodeCoverage (18.0.1) + Microsoft.Extensions.ObjectPool (10.0.1) + Microsoft.NET.StringTools (18.0.2) + Microsoft.NET.Test.Sdk (18.0.1) + Microsoft.CodeCoverage (>= 18.0.1) + Microsoft.TestPlatform.TestHost (>= 18.0.1) + Microsoft.TestPlatform.ObjectModel (18.0.1) System.Reflection.Metadata (>= 8.0) - Microsoft.TestPlatform.TestHost (18.0) - Microsoft.TestPlatform.ObjectModel (>= 18.0) + Microsoft.TestPlatform.TestHost (18.0.1) + Microsoft.TestPlatform.ObjectModel (>= 18.0.1) Newtonsoft.Json (>= 13.0.3) - Microsoft.Win32.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) + Microsoft.VisualStudio.SolutionPersistence (1.0.52) Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.3.71) + MSBuild.StructuredLogger (2.3.113) Microsoft.Build.Framework (>= 17.5) Microsoft.Build.Utilities.Core (>= 17.5) System.Collections.Immutable (>= 8.0) - NaturalSort.Extension (4.4) + NaturalSort.Extension (4.4.1) Newtonsoft.Json (13.0.4) NuGet.Versioning (7.0.1) System.Buffers (4.6.1) - System.Collections.Immutable (9.0.10) - System.Composition (9.0.10) - System.Composition.AttributedModel (>= 9.0.10) - System.Composition.Convention (>= 9.0.10) - System.Composition.Hosting (>= 9.0.10) - System.Composition.Runtime (>= 9.0.10) - System.Composition.TypedParts (>= 9.0.10) - System.Composition.AttributedModel (9.0.10) - System.Composition.Convention (9.0.10) - System.Composition.AttributedModel (>= 9.0.10) - System.Composition.Hosting (9.0.10) - System.Composition.Runtime (>= 9.0.10) - System.Composition.Runtime (9.0.10) - System.Composition.TypedParts (9.0.10) - System.Composition.AttributedModel (>= 9.0.10) - System.Composition.Hosting (>= 9.0.10) - System.Composition.Runtime (>= 9.0.10) - System.Configuration.ConfigurationManager (9.0.10) - System.Diagnostics.EventLog (>= 9.0.10) - System.Security.Cryptography.ProtectedData (>= 9.0.10) - System.Diagnostics.EventLog (9.0.10) - System.IO (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem.Primitives (4.3) - System.Runtime (>= 4.3) - System.IO.Pipelines (9.0.10) + System.Collections.Immutable (10.0.1) + System.Composition (10.0.1) + System.Composition.AttributedModel (>= 10.0.1) + System.Composition.Convention (>= 10.0.1) + System.Composition.Hosting (>= 10.0.1) + System.Composition.Runtime (>= 10.0.1) + System.Composition.TypedParts (>= 10.0.1) + System.Composition.AttributedModel (10.0.1) + System.Composition.Convention (10.0.1) + System.Composition.AttributedModel (>= 10.0.1) + System.Composition.Hosting (10.0.1) + System.Composition.Runtime (>= 10.0.1) + System.Composition.Runtime (10.0.1) + System.Composition.TypedParts (10.0.1) + System.Composition.AttributedModel (>= 10.0.1) + System.Composition.Hosting (>= 10.0.1) + System.Composition.Runtime (>= 10.0.1) + System.Configuration.ConfigurationManager (10.0.1) + System.Diagnostics.EventLog (>= 10.0.1) + System.Security.Cryptography.ProtectedData (>= 10.0.1) + System.Diagnostics.EventLog (10.0.1) + System.IO.Pipelines (10.0.1) System.Memory (4.6.3) - System.Net.Primitives (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime (>= 4.3.1) - System.Runtime.Handles (>= 4.3) System.Numerics.Vectors (4.6.1) - System.Reflection.Metadata (9.0.10) - System.Reflection.MetadataLoadContext (9.0.10) - System.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) + System.Reflection.Metadata (10.0.1) + System.Reflection.MetadataLoadContext (10.0.1) System.Runtime.CompilerServices.Unsafe (6.1.2) - System.Runtime.Handles (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Security.Cryptography.ProtectedData (9.0.10) - System.Security.Principal (4.3) - System.Runtime (>= 4.3) - System.Text.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (9.0.10) - System.Threading.Channels (9.0.10) - System.Threading.Tasks (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) + System.Security.Cryptography.ProtectedData (10.0.1) + System.Text.Encoding.CodePages (10.0.1) + System.Threading.Channels (10.0.1) System.Threading.Tasks.Extensions (4.6.3) - System.Threading.ThreadPool (4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) xunit (2.9.3) xunit.analyzers (>= 1.18) xunit.assert (>= 2.9.3) xunit.core (2.9.3) xunit.abstractions (2.0.3) - xunit.analyzers (1.24) + xunit.analyzers (1.26) xunit.assert (2.9.3) xunit.core (2.9.3) xunit.extensibility.core (2.9.3) diff --git a/csharp/paket.main.bzl b/csharp/paket.main.bzl index 0778182f8b9..88131888227 100644 --- a/csharp/paket.main.bzl +++ b/csharp/paket.main.bzl @@ -7,76 +7,64 @@ def main(): nuget_repo( name = "paket.main", packages = [ - {"name": "Basic.CompilerLog.Util", "id": "Basic.CompilerLog.Util", "version": "0.9.21", "sha512": "sha512-l+Qbzh3nVaLLwZYgv/v5zIEdprseLgxcprHBvbNBzOyer7m6XD/N5GJC+FPChnSP48kK1/p7Nj7mvQH8d5NOtA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net462": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net47": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net471": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net472": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net48": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net5.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net6.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net7.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "net8.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "net9.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp2.2": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netcoreapp3.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"], "netstandard2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "System.Buffers"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Humanizer.Core", "id": "Humanizer.Core", "version": "2.14.1", "sha512": "sha512-yzqGU/HKNLZ9Uvr6kvSc3wYV/S5O/IvklIUW5WF7MuivGLY8wS5IZnLPkt7D1KW8Et2Enl0I3Lzg2vGWM24Xsw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MessagePack", "id": "MessagePack", "version": "3.1.4", "sha512": "sha512-O0JoklM97ru+Rqr1hGnlCbSAxi8MOk48pwoaT458RzboCHuAkQWTh+Of9MUoN3LE0Cb2tapku0FRPt2hnk+o0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net6.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net7.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net8.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net9.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netcoreapp3.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MessagePack.Annotations", "id": "MessagePack.Annotations", "version": "3.1.4", "sha512": "sha512-kIgD3A0OHs8+VUabMhIJT9ZF4oGHqjCocaRDmERI/Ds2hzJ5q3kcvzn5zI7V3CJ2NlQ4HDI80uh6zCqglwgQCQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MessagePackAnalyzer", "id": "MessagePackAnalyzer", "version": "3.1.4", "sha512": "sha512-DFlhiA5fia4iK6i0S+L7sYMYmo5XRgWydKxiaxwz7tfcbvIhU7nmG4JzN1D9Y2XCEmLNExvNwTzXVEgURu4GnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "9.0.10", "sha512": "sha512-Di823U3L+0A2YQGU1HqJC7Gh8o/nuSXle5u6QDgho9s920QbVk6BS5fKJ0s+pzW+WbqM9+aPUQ2DJsfP6tLdKg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "9.0.10", "sha512": "sha512-BZV+TVnrDf9O+Ak5gN47uOkECCtpiVq6MpEYX5lQcG1WFD6/Bnx5eyfueX9giDQPEk6azzhSPTGmJcWNXRBc+Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "17.14.28", "sha512": "sha512-/J3DY36eYjSi/NYf/m4fS4HlxN8Zy+bCsopJUN0j4NNnrws4NR9ueWd0HKyhWEYYUa29Q1kjG1uKSGN1jBWg4g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Build.Framework", "id": "Microsoft.Build.Framework", "version": "17.14.28", "sha512": "sha512-Gj4C8LNilfH6u6xu7QI/y0tkJCp3yQQpde/3qeK8E2FOfrZ4ENOoG/r2eKZws15bN6HPj09PhaJoqBhdbJdLpA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Build.Utilities.Core", "id": "Microsoft.Build.Utilities.Core", "version": "17.14.28", "sha512": "sha512-A5uyO5HysGJRFR3IjjVKJ0Y69USn3E5Vlt/h51yID5Ynts4zHdh5ZELeU1gCoeF8i3tE21gO2u+QQLqQlb/iUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net462": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net47": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net471": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Text.Encoding.CodePages", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis", "id": "Microsoft.CodeAnalysis", "version": "4.14.0", "sha512": "sha512-eNBbL927Lc1Nh24ElWJmlGA928O9tu4mgWGOqmMFe6sskqQWCdnronCrrzwUdhBsBIjfx898MOCMOXuZQMtqOg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net9.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.11.0", "sha512": "sha512-tP9SLzLK72XCExlh8KXfrKbU6ycmZL3ExGl/a3Ml7LNy2Uaam7gFjjUmdzyTYkMXTyckCHHpzx7bD6BMumh8Bg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "4.14.0", "sha512": "sha512-k9AIzOrtcZVqr9+lmcEW0vY80emyXx5JB/757K0HUF96GeUeiTD+djOlFF2y7k4XPZo20Lru4tDgQos+VKBr0w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "4.14.0", "sha512": "sha512-kqS2NihVvNQHxzLePtyYiiJmFzoYO9Wm46O9DhfUgIIf5NwTbvSy66kV9EM+qAHmGpi7zQy4w8JU6DFnPlAyTA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.CSharp.Workspaces", "id": "Microsoft.CodeAnalysis.CSharp.Workspaces", "version": "4.14.0", "sha512": "sha512-q9VD/wqMEGW0S5WIKuTZ4Wr9EpsZJQrQxqCodxjlsfW0bWl7mOQ4zA7k0Nf80ZrEe7Edaz6+3SBvrALiUcaHzA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.VisualBasic", "id": "Microsoft.CodeAnalysis.VisualBasic", "version": "4.14.0", "sha512": "sha512-vXhNyQk07THoSHzsu/fM48tFFHYAZQumfT7uDJuL/5ZO4CRgJK9Zr6UOJOwX1Df8N//lRMeymYyT+qiAmnWiYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "4.14.0", "sha512": "sha512-LZMVjjbRTcKOtgVDz/sZn+AXBNGL4iKYnWwu5eOvvRcdXaLNlOA7bYtTZOnSMlqig7b/3gMzkoaLqcJ+7hgddg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata", "System.Threading.Channels"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "4.14.0", "sha512": "sha512-m/c+FWBNr/JgCYRJ/jh14U9oAtPxHTgDiujb+19QG1AA3KMNZed+UQ51PRSaOt9CbIoMubZp2AkUMSeioz4EHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.CodeCoverage", "id": "Microsoft.CodeCoverage", "version": "18.0.0", "sha512": "sha512-HT0zpIWW9Q0Csllqo7lefZ27HE6dl5gfh7NA4FPZjEURenH2GsvpRSZ63b1d3klDphxiX8bpxKwVSzyURhhgkQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "9.0.10", "sha512": "sha512-mx7sdMdkCBJuJQkSEaV9wQaB39+ciVUX0VCB7YrqAGvxyBkLRR0mgl9v7j4c6lVMeRZH79FgKOy1WaQbSyhVKA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "17.14.28", "sha512": "sha512-oJDGPNoVuWOmKTPpFK0lJnVwbLMRsm2oxgxBFOMKBYzSZtmiS0kcoednhArAeAicV2aSUFiuor1pw7JK/p2LwQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NET.Test.Sdk", "id": "Microsoft.NET.Test.Sdk", "version": "18.0.0", "sha512": "sha512-+0iHCuP77nxZLLfEhCNDMOcy8+qC7IFtsLrSwSzp0qc7pUs2J28Stu2c+m9AEKkKdvhsMKB/AhlFOSyeOpdKVg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.CodeCoverage"], "net47": ["Microsoft.CodeCoverage"], "net471": ["Microsoft.CodeCoverage"], "net472": ["Microsoft.CodeCoverage"], "net48": ["Microsoft.CodeCoverage"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net9.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NETCore.Platforms", "id": "Microsoft.NETCore.Platforms", "version": "7.0.4", "sha512": "sha512-mcQWjuDBh4WHGG4WcBI0k025WAdA2afMm6fs42sm1f+3gRyNQUiuMVT5gAWNUGSHmlu6qn/TCnAQpfl4Gm6cBw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.NETCore.Targets", "id": "Microsoft.NETCore.Targets", "version": "5.0.0", "sha512": "sha512-hYHm3JAjQO/nySxcl1EpZhYEW+2P3H1eLZNr+QxgO5TnLS6hqtfi5WchjQzjid45MYmhy2X7IOmcWtDP4fpMGw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.TestPlatform.ObjectModel", "id": "Microsoft.TestPlatform.ObjectModel", "version": "18.0.0", "sha512": "sha512-/ShCZQuIxaxzGjRQqCYTLD/KnG1yQKsNZXDUtjO2d55IOB8FEyhXleLw2hw8QlK/1gkblyJsp4BfQ8BQFaEAlg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Reflection.Metadata"], "net462": ["System.Reflection.Metadata"], "net47": ["System.Reflection.Metadata"], "net471": ["System.Reflection.Metadata"], "net472": ["System.Reflection.Metadata"], "net48": ["System.Reflection.Metadata"], "net5.0": ["System.Reflection.Metadata"], "net6.0": ["System.Reflection.Metadata"], "net7.0": ["System.Reflection.Metadata"], "net8.0": ["System.Reflection.Metadata"], "net9.0": ["System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Reflection.Metadata"], "netcoreapp2.1": ["System.Reflection.Metadata"], "netcoreapp2.2": ["System.Reflection.Metadata"], "netcoreapp3.0": ["System.Reflection.Metadata"], "netcoreapp3.1": ["System.Reflection.Metadata"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Reflection.Metadata"], "netstandard2.1": ["System.Reflection.Metadata"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.TestPlatform.TestHost", "id": "Microsoft.TestPlatform.TestHost", "version": "18.0.0", "sha512": "sha512-9IZUooXUUnh+z04QtWCu5iku4D4FAfJajP1su+I6741AxXa0bnXPo2125vqjvK0Khfsk16zskgDpG6vf2Mjubg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net9.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Microsoft.Win32.Primitives", "id": "Microsoft.Win32.Primitives", "version": "4.3.0", "sha512": "sha512-Nm8Hp51y9tYcK3xD6qk43Wjftrg1mdH24CCJsTb6gr7HS21U1uA+CKPGEtUcVZbjU1y8Kynzm5eoJ7Pnx5gm8A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Mono.Posix.NETStandard", "id": "Mono.Posix.NETStandard", "version": "1.0.0", "sha512": "sha512-RtGiutQZJAmajvQ0QvBvh73VJye85iW9f9tjZlzF88idLxNMo4lAktP/4Y9ilCpais0LDO0tpoICt9Hdv6wooA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "MSBuild.StructuredLogger", "id": "MSBuild.StructuredLogger", "version": "2.3.71", "sha512": "sha512-u2Tw1WLYy+2VdccrQWyN3AY8zcFj4evfwqWMd7aBiicX3eGfkWkME7lsh9K2XS/+S8KVkjGNPI/g78E2A7Zx0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "NaturalSort.Extension", "id": "NaturalSort.Extension", "version": "4.4.0", "sha512": "sha512-lcwYGJO2xZylcLW6B64tp6wE9UAt6fSn6el8MSAly5+6QG1vc/9uXQz+dsi69q1DxFv2TOaWrrheHNzg4yvy3Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "Newtonsoft.Json", "id": "Newtonsoft.Json", "version": "13.0.4", "sha512": "sha512-bR+v+E/yJ6g7GV2uXw2OrUSjYYfjLkOLC8JD4kCS23msLapnKtdJPBJA75fwHH++ErIffeIqzYITLxAur4KAXA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "NuGet.Versioning", "id": "NuGet.Versioning", "version": "7.0.1", "sha512": "sha512-ibGcrpgA8foidKNcnf+AQ4zEaVZu4OyWjcPITii6mNgwt2uhd8VFsEq7/Mb0KDxrEJaew+nWJQb7Ju166SAyzw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Buffers", "id": "System.Buffers", "version": "4.6.1", "sha512": "sha512-qve/dFwECwehSWlZmpkrrlIeATCvo/Hw2koyMrUVcDBy5gXAQrnwX8pHEoqgj8DgkrWuWW1DrQbFqoMbo+Fvrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "9.0.10", "sha512": "sha512-00LI4a7blU063Z0lCdRVLlh0Mzl1yYLZaxlOZe0MiNH+TELklX0Mne/XKU7UuCZQQh6FHrcEUPDjxIsy2jZUxg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition", "id": "System.Composition", "version": "9.0.10", "sha512": "sha512-PyUH0f6tdjlQBntP/73cqaR53fjAZkaqGRatIi1BgZIfQH/Z0k1rPHaklBZqFV5+wKUkL74+49TrFPnB/zw+2Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net462": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net47": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net471": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net472": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net48": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.AttributedModel", "id": "System.Composition.AttributedModel", "version": "9.0.10", "sha512": "sha512-9Gx8SRD1DJcQLca7ZaeMjU+qUd4EdxDj6urKR4TizWx+NM7L+beoAn07XCKkdJsweqF6gUK7el93DhUbpssSqA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.Convention", "id": "System.Composition.Convention", "version": "9.0.10", "sha512": "sha512-hzvwytBYpKoDX+OJpHXKoupR+BYy+QCUY5vSWOTvJLagAm3zYJKxAUR3l8OyPy46tnQ+3lK/6f5DeLHiTfbIIw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel"], "net462": ["System.Composition.AttributedModel"], "net47": ["System.Composition.AttributedModel"], "net471": ["System.Composition.AttributedModel"], "net472": ["System.Composition.AttributedModel"], "net48": ["System.Composition.AttributedModel"], "net5.0": ["System.Composition.AttributedModel"], "net6.0": ["System.Composition.AttributedModel"], "net7.0": ["System.Composition.AttributedModel"], "net8.0": ["System.Composition.AttributedModel"], "net9.0": ["System.Composition.AttributedModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel"], "netcoreapp2.1": ["System.Composition.AttributedModel"], "netcoreapp2.2": ["System.Composition.AttributedModel"], "netcoreapp3.0": ["System.Composition.AttributedModel"], "netcoreapp3.1": ["System.Composition.AttributedModel"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel"], "netstandard2.1": ["System.Composition.AttributedModel"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.Hosting", "id": "System.Composition.Hosting", "version": "9.0.10", "sha512": "sha512-fPTM06IdvHrFIRJyYEpVKl5W7UTT4U3E+iiAVg3DFfuQ4Abe4XVhkoHn3DB4pUTOU2RpVc2+PxQ6y9hULPta1A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.Runtime"], "net462": ["System.Composition.Runtime"], "net47": ["System.Composition.Runtime"], "net471": ["System.Composition.Runtime"], "net472": ["System.Composition.Runtime"], "net48": ["System.Composition.Runtime"], "net5.0": ["System.Composition.Runtime"], "net6.0": ["System.Composition.Runtime"], "net7.0": ["System.Composition.Runtime"], "net8.0": ["System.Composition.Runtime"], "net9.0": ["System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.Runtime"], "netstandard2.1": ["System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.Runtime", "id": "System.Composition.Runtime", "version": "9.0.10", "sha512": "sha512-8iDtNLXkjiFwir6Ocrm4XCC19Jzj06OHTvDeL6BZ4guWhCCGRCl6nWJVPonq6G2kZmNiDfraOwC8RgV5qPAAjg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "9.0.10", "sha512": "sha512-7OUDlDYszrhjJ8/r5na3N07XzBWl8e6/87dyGoDraDHlkl+APL4dbZ8TfniaXLJxZabDHVaaMLpViiIf+Fb9Ng==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "9.0.10", "sha512": "sha512-/LM2cc6vZulHDcDsd+9vntVD9j953k8WCCzB4Fea6YxOoIexpGP8iJhC7v13hKN5V66MDprjCJRjHHhDaDuOXw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "9.0.10", "sha512": "sha512-3rC2TD7/ikgwu5Z7BzViMVDDp7RGyaej8pvVDzhy6rI7QZ9+x6DPiOPD5y4FjePxTLh/rFjMNcP7nG9IHWsB2Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO", "id": "System.IO", "version": "4.3.0", "sha512": "sha512-v8paIePhmGuXZbE9xvvNb4uJ5ME4OFXR1+8la/G/L1GIl2nbU2WFnddgb79kVK3U2us7q1aZT/uY/R0D/ovB5g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO.FileSystem", "id": "System.IO.FileSystem", "version": "4.3.0", "sha512": "sha512-T7WB1vhblSmgkaDpdGM3Uqo55Qsr5sip5eyowrwiXOoHBkzOx3ePd9+Zh97r9NzOwFCxqX7awO6RBxQuao7n7g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": ["System.IO.FileSystem.Primitives"], "net461": ["System.IO.FileSystem.Primitives"], "net462": ["System.IO.FileSystem.Primitives"], "net47": ["System.IO.FileSystem.Primitives"], "net471": ["System.IO.FileSystem.Primitives"], "net472": ["System.IO.FileSystem.Primitives"], "net48": ["System.IO.FileSystem.Primitives"], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.IO", "System.IO.FileSystem.Primitives", "System.Runtime", "System.Runtime.Handles", "System.Text.Encoding", "System.Threading.Tasks"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO.FileSystem.Primitives", "id": "System.IO.FileSystem.Primitives", "version": "4.3.0", "sha512": "sha512-WIWVPQlYLP/Zc9I6IakpBk1y8ryVGK83MtZx//zGKKi2hvHQWKAB7moRQCOz5Is/wNDksiYpocf3FeA3le6e5Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "9.0.10", "sha512": "sha512-kQg8x+mbt8Xi1mwm32DVEz6DtfqKn9XUGziGQvdNJ2QEGWvufcZfRWtxAf9nB+/B1FT1x7W4Wh2Fr9lcKlVWPA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Memory", "id": "System.Memory", "version": "4.6.3", "sha512": "sha512-NXcNYlWoXe5cz9sb8Huo6x2dCZVYkhwKtgE00n/MoI8V4ZI/7/t+EI5bOhQFlZfFjjqM8+U6prjU/aARt7H/tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Net.Primitives", "id": "System.Net.Primitives", "version": "4.3.1", "sha512": "sha512-BgdlyYCI7rrdh36p3lMTqbkvaafPETpB1bk9iQlFdQxYE692kiXvmseXs8ghL+gEgQF2xgDc8GH4QLkSgUUs+Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.6.1", "sha512": "sha512-/rkvpUeUPlCY/2qYVQKiUsj5IKaXZcy2+SQAGAfemAdyEF5AgIgYOFNSTMWDXo09JWFX9HB+wV1yCyi2Mwi3TA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "9.0.10", "sha512": "sha512-3ZztNrfQJww1qZ9UgdB5aTAYlAIWd5dMyyBagAC8jth6iG5vxawtaGbZJMh4xkL9A5v6Ng48YL+hAjt08GBWKQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Memory"], "net8.0": ["System.Collections.Immutable"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "9.0.10", "sha512": "sha512-qf9IjoUO2XfK4BTPhCIFDYAsiWtFCTpyiklmxoNK2Ys1wZdoVe5C3j5BH2ajSDWy2mAQcN1n+Eh/3uhd3oUcEA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Runtime", "id": "System.Runtime", "version": "4.3.1", "sha512": "sha512-Al69mPDfzdD+bKGK2HAfB+lNFOHFqnkqzNnUJmmvUe1/qEPK9M7EiTT4zuycKDPy7ev11xz8XVgJWKP0hm7NIA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.1.2", "sha512": "sha512-t2aXWJZBkAkRrTOnw31OBELKEVSDD5YvC3O5dXaHFsR66/nRTKm1y3Iq6NwFI5u5IlKrWYfdan66V+GKKkY8hQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Runtime.Handles", "id": "System.Runtime.Handles", "version": "4.3.0", "sha512": "sha512-CluvHdVUv54BvLTOCCyybugreDNk/rR8unMPruzXDtxSjvrQOU3M4R831/lQf4YI8VYp668FGQa/01E+Rq8PEQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "9.0.10", "sha512": "sha512-yR8dvnme5ndA3L6Q6F/2N+4QBCi8sdfGWg9lmRVNBZO+evqIt323UdXMu8b8MnMYoyxXaml+vTEl74t5Nu7ABQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Security.Principal", "id": "System.Security.Principal", "version": "4.3.0", "sha512": "sha512-24oe0NGJY32e+DFHVQzl2okM9uwYmn0Aa6nehqtVZ55/Al4Yva7S3BN934Kn5qATH7TVTUJkgxhisdfF7mKDfg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime"], "net6.0": ["System.Runtime"], "net7.0": ["System.Runtime"], "net8.0": ["System.Runtime"], "net9.0": ["System.Runtime"], "netcoreapp1.0": ["System.Runtime"], "netcoreapp1.1": ["System.Runtime"], "netcoreapp2.0": ["System.Runtime"], "netcoreapp2.1": ["System.Runtime"], "netcoreapp2.2": ["System.Runtime"], "netcoreapp3.0": ["System.Runtime"], "netcoreapp3.1": ["System.Runtime"], "netstandard": [], "netstandard1.0": ["System.Runtime"], "netstandard1.1": ["System.Runtime"], "netstandard1.2": ["System.Runtime"], "netstandard1.3": ["System.Runtime"], "netstandard1.4": ["System.Runtime"], "netstandard1.5": ["System.Runtime"], "netstandard1.6": ["System.Runtime"], "netstandard2.0": ["System.Runtime"], "netstandard2.1": ["System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Text.Encoding", "id": "System.Text.Encoding", "version": "4.3.0", "sha512": "sha512-b/f+7HMTpxIfeV7H03bkuHKMFylCGfr9/U6gePnfFFW0aF8LOWLDgQCY6V1oWUqDksC3mdNuyChM1vy9TP4sZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "9.0.10", "sha512": "sha512-LPoLnlvwb3D12yjwva2nvfzDqm4XNUBrAf/zQ5ad2IOqhTWqRm4GIXxlH4lSr3W/ET31aLtM4C4vHbr8sGEzWA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "9.0.10", "sha512": "sha512-wMh3VX2qbwFg8rZllC1QsiXl4NjLkamNVT+O6bJG5V3sN6cwRZRza2v7f2ohFNGdGlViwUAO/PKSZgJfuJNXTg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.Tasks", "id": "System.Threading.Tasks", "version": "4.3.0", "sha512": "sha512-fUiP+CyyCjs872OA8trl6p97qma/da1xGq3h4zAbJZk8zyaU4zyEfqW5vbkP80xG/Nimun1vlWBboMEk7XxdEw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net6.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net7.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net8.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "net9.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp2.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netcoreapp3.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard": [], "netstandard1.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.2": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.3": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.4": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.5": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard1.6": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.0": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"], "netstandard2.1": ["Microsoft.NETCore.Platforms", "Microsoft.NETCore.Targets", "System.Runtime"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.6.3", "sha512": "sha512-zWRHXIBnbfzQE1SamNoW9X5NjEcW/JNAtvVxGKd3bcg71wQVmoI3pDq+WUa2A+temXSNCm7707hmAFwwcYlK0A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "System.Threading.ThreadPool", "id": "System.Threading.ThreadPool", "version": "4.3.0", "sha512": "sha512-RQpA+UpI6Tlpeedk5JStYk2DM/M3i5HqabI/yDbfj1xDu9bIz9kdoquVpHbh/wQjOJaOCbcgRH8iQcAUv8dRWQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Runtime", "System.Runtime.Handles"], "net6.0": ["System.Runtime", "System.Runtime.Handles"], "net7.0": ["System.Runtime", "System.Runtime.Handles"], "net8.0": ["System.Runtime", "System.Runtime.Handles"], "net9.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp1.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.1": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp2.2": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.0": ["System.Runtime", "System.Runtime.Handles"], "netcoreapp3.1": ["System.Runtime", "System.Runtime.Handles"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.4": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.5": ["System.Runtime", "System.Runtime.Handles"], "netstandard1.6": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.0": ["System.Runtime", "System.Runtime.Handles"], "netstandard2.1": ["System.Runtime", "System.Runtime.Handles"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit", "id": "xunit", "version": "2.9.3", "sha512": "sha512-3/ayVPC7NQWQENR5REbOgXYsbhoJsmpnxQa5pO4lxbjGbckOs62nsm4kLErzc8ng7V5Xz08uwVjMqaZGJiXCrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net20": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net30": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net35": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net40": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net403": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net45": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net451": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net452": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net46": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net461": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net462": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net47": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net471": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net472": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net48": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net5.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net6.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net7.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net8.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net9.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.3": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.4": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.5": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.6": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.abstractions", "id": "xunit.abstractions", "version": "2.0.3", "sha512": "sha512-PKJri5f0qEQPFvgY6CZR9XG8JROlWSdC/ZYLkkDQuID++Egn+yWjB+Yf57AZ8U6GRlP7z33uDQ4/r5BZPer2JA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.analyzers", "id": "xunit.analyzers", "version": "1.24.0", "sha512": "sha512-LiogS9RX6I4MHFN8V3dNgEQ4QJrtvtKq49h9k5NAOvmwcrbR1IeNMZvyuez3YITKAeF+ka9yVG3+OH6vApPB/A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.assert", "id": "xunit.assert", "version": "2.9.3", "sha512": "sha512-wfqwCKAhSWGy9P/dPqDGSIBnPW3sUJ49MEfcTqNF+5BgJwjwtHb9SE7ajYZuR8ymTd8dwxoEGnlJHiejbgDv9w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.core", "id": "xunit.core", "version": "2.9.3", "sha512": "sha512-cv2sO37qJkIbBL3fXDIn3EPQ2zK8LQ6FkMJNnn1xc9n8mo3ik0URA4MfUNCmwDDCx83ZiJeRrJ0y1ykasojNJg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net20": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net30": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net35": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net40": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net403": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net45": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net451": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net452": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net46": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net461": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net462": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net47": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net471": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net472": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net48": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net5.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net6.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net7.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net8.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net9.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.3": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.4": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.5": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.6": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.extensibility.core", "id": "xunit.extensibility.core", "version": "2.9.3", "sha512": "sha512-S0a+jmIF/DraKuJ+FfWbqXMwvpcKxjP3GdrQzz5pr3GYtgII2XfDdAhkU/5VIWqWon2R6Q31X/9sTGaU+koDaQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.extensibility.execution", "id": "xunit.extensibility.execution", "version": "2.9.3", "sha512": "sha512-IidoBSrGw/KhWzZsKXIcStohj/oRFZizbWeUv+0hOFLeMJMegSW5QoGNzmjQuF8BuRtCyPQQukWSYdNnnfPAkA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.extensibility.core"], "net451": ["xunit.extensibility.core"], "net452": ["xunit.extensibility.core"], "net46": ["xunit.extensibility.core"], "net461": ["xunit.extensibility.core"], "net462": ["xunit.extensibility.core"], "net47": ["xunit.extensibility.core"], "net471": ["xunit.extensibility.core"], "net472": ["xunit.extensibility.core"], "net48": ["xunit.extensibility.core"], "net5.0": ["xunit.extensibility.core"], "net6.0": ["xunit.extensibility.core"], "net7.0": ["xunit.extensibility.core"], "net8.0": ["xunit.extensibility.core"], "net9.0": ["xunit.extensibility.core"], "netcoreapp1.0": ["xunit.extensibility.core"], "netcoreapp1.1": ["xunit.extensibility.core"], "netcoreapp2.0": ["xunit.extensibility.core"], "netcoreapp2.1": ["xunit.extensibility.core"], "netcoreapp2.2": ["xunit.extensibility.core"], "netcoreapp3.0": ["xunit.extensibility.core"], "netcoreapp3.1": ["xunit.extensibility.core"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.extensibility.core"], "netstandard1.2": ["xunit.extensibility.core"], "netstandard1.3": ["xunit.extensibility.core"], "netstandard1.4": ["xunit.extensibility.core"], "netstandard1.5": ["xunit.extensibility.core"], "netstandard1.6": ["xunit.extensibility.core"], "netstandard2.0": ["xunit.extensibility.core"], "netstandard2.1": ["xunit.extensibility.core"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.runner.utility", "id": "xunit.runner.utility", "version": "2.9.3", "sha512": "sha512-L2zlPa7Ci/Awf5LdeTOvKOanev1bB6xV2Gxbrc+EDDN1hO/j0AIbu5PM8lXgkX69/8xaaex7zrxHZd8gcz2ilQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": ["xunit.abstractions"], "net40": ["xunit.abstractions"], "net403": ["xunit.abstractions"], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": []}, - {"name": "xunit.runner.visualstudio", "id": "xunit.runner.visualstudio", "version": "3.1.5", "sha512": "sha512-b/tvN9kXtUd3wSSYbC80Ic6y/dYlYbNSvatYiv71iozPhXqM4EaOuHujkIJh85b+wY6dgf25k9ENSy8jN6mlvQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.TestPlatform.ObjectModel"], "net48": ["Microsoft.TestPlatform.ObjectModel"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": []}, + {"name": "Basic.CompilerLog.Util", "id": "Basic.CompilerLog.Util", "version": "0.9.25", "sha512": "sha512-AU428QscGy1Z9eM4WqAqlO19pRIyHPZ+K63jgKX+sBWFzVLHMlyc97RVdm8VUAqVVBauS7kwaiA3S1sE/mBr4w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net462": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net47": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net471": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net472": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net48": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net5.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net6.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net7.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "net8.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning"], "net9.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp2.2": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp3.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netcoreapp3.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"], "netstandard2.1": ["MSBuild.StructuredLogger", "MessagePack", "Microsoft.Bcl.Memory", "Microsoft.CodeAnalysis", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.Extensions.ObjectPool", "NaturalSort.Extension", "NuGet.Versioning", "System.Buffers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Humanizer.Core", "id": "Humanizer.Core", "version": "3.0.1", "sha512": "sha512-lcQ2HfNqHljfbalRLMKc8j4M0Og3qIvMSeyLp7KY58aCcgcZwiR0s5Uf2vrJ3p7OFGoWjcgbWATTpxqzrbuBSw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MessagePack", "id": "MessagePack", "version": "3.1.4", "sha512": "sha512-O0JoklM97ru+Rqr1hGnlCbSAxi8MOk48pwoaT458RzboCHuAkQWTh+Of9MUoN3LE0Cb2tapku0FRPt2hnk+o0g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net6.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net7.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "net8.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "net9.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netcoreapp3.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Threading.Tasks.Extensions", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["MessagePackAnalyzer", "MessagePack.Annotations", "Microsoft.NET.StringTools", "System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MessagePack.Annotations", "id": "MessagePack.Annotations", "version": "3.1.4", "sha512": "sha512-kIgD3A0OHs8+VUabMhIJT9ZF4oGHqjCocaRDmERI/Ds2hzJ5q3kcvzn5zI7V3CJ2NlQ4HDI80uh6zCqglwgQCQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MessagePackAnalyzer", "id": "MessagePackAnalyzer", "version": "3.1.4", "sha512": "sha512-DFlhiA5fia4iK6i0S+L7sYMYmo5XRgWydKxiaxwz7tfcbvIhU7nmG4JzN1D9Y2XCEmLNExvNwTzXVEgURu4GnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Bcl.AsyncInterfaces", "id": "Microsoft.Bcl.AsyncInterfaces", "version": "10.0.1", "sha512": "sha512-2SbGOdcRb04XU0XDlYH3o3a2Xu9w2kgkS5SXXru/YVvdpbLymqgen+JcYsPzf9IzLO4hFiZhKpBTJRe7fB885A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Threading.Tasks.Extensions"], "net462": ["System.Threading.Tasks.Extensions"], "net47": ["System.Threading.Tasks.Extensions"], "net471": ["System.Threading.Tasks.Extensions"], "net472": ["System.Threading.Tasks.Extensions"], "net48": ["System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Bcl.Memory", "id": "Microsoft.Bcl.Memory", "version": "10.0.1", "sha512": "sha512-e0Z3KEDQN0Q7HxmYBNuY2r1pCyaUl9T5AbtyC2v7Nnn+XcT2v41B+nnhGKesGUWo119e9Qq9wbOhh94Tm6kR/A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build", "id": "Microsoft.Build", "version": "18.0.2", "sha512": "sha512-/rRET3AtEAUTKFDboKvp/GTDxGwU7VBBfwaKeZtzGg+pyqYdvasHeR3ERTuoxSrgJqnu1J23xd4H481IiJFhnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Reflection.MetadataLoadContext", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Reflection.MetadataLoadContext", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build.Framework", "id": "Microsoft.Build.Framework", "version": "18.0.2", "sha512": "sha512-cmXoGncAIrDZgu0NumtXJSTILv9NHU2sPhrlkckefMK1XCuJUrvClVxkmvQDpvm4sCKwSFolW2AanGCLNJ6xDw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Collections.Immutable", "System.Runtime.CompilerServices.Unsafe", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Build.Utilities.Core", "id": "Microsoft.Build.Utilities.Core", "version": "18.0.2", "sha512": "sha512-4f5DSPN/nLyGddOx2Etrjy42XFQ9tWeJ8lwJr/tLloRl/YRzT1kV+1txwRFXlav9V93wMOUrwMQqpnd131Sb+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Configuration.ConfigurationManager", "System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework"], "net462": ["Microsoft.Build.Framework"], "net47": ["Microsoft.Build.Framework"], "net471": ["Microsoft.Build.Framework"], "net472": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Build.Framework", "Microsoft.NET.StringTools", "System.Collections.Immutable", "System.Configuration.ConfigurationManager", "System.Memory", "System.Runtime.CompilerServices.Unsafe", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.Build.Framework"], "net6.0": ["Microsoft.Build.Framework"], "net7.0": ["Microsoft.Build.Framework"], "net8.0": ["Microsoft.Build.Framework"], "net9.0": ["Microsoft.Build.Framework"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework"], "netcoreapp2.1": ["Microsoft.Build.Framework"], "netcoreapp2.2": ["Microsoft.Build.Framework"], "netcoreapp3.0": ["Microsoft.Build.Framework"], "netcoreapp3.1": ["Microsoft.Build.Framework"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework"], "netstandard2.1": ["Microsoft.Build.Framework"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis", "id": "Microsoft.CodeAnalysis", "version": "5.0.0", "sha512": "sha512-ToXzcZLcHA9vT4e1A6jNafAPuTJj4osfqJck562Be8ByvzS78pY9I+SdO5yo2Kwka0lz++hOWypW1Qdf1TtR4w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net9.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.CSharp.Workspaces", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Analyzers", "id": "Microsoft.CodeAnalysis.Analyzers", "version": "3.11.0", "sha512": "sha512-tP9SLzLK72XCExlh8KXfrKbU6ycmZL3ExGl/a3Ml7LNy2Uaam7gFjjUmdzyTYkMXTyckCHHpzx7bD6BMumh8Bg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Common", "id": "Microsoft.CodeAnalysis.Common", "version": "5.0.0", "sha512": "sha512-uK5yslTJQ2UznzYlttFuDCa/6KruN1aQW/ZNFFHvK+yyA6q7vZ5o0BSPvLj+Com1/R7wGJ07c2O0lPcbDrmQdw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net462": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net47": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net471": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net472": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net48": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net5.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net6.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net7.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "net8.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"], "netstandard2.1": ["Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Memory", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions", "System.Buffers", "System.Numerics.Vectors"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.CSharp", "id": "Microsoft.CodeAnalysis.CSharp", "version": "5.0.0", "sha512": "sha512-wwT/CJOQyQ72Ldouy7gjS/3Vi92hbAAoU3Y0e/6mb39+Vp7aXr3PxuBD73U2QrK1zzgTyv3QhvJPrQX0EiWS8Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.CSharp.Workspaces", "id": "Microsoft.CodeAnalysis.CSharp.Workspaces", "version": "5.0.0", "sha512": "sha512-Fy0BNxco9b7XC7LKdTgq+Kk62HKapyEM05LN5ua3Nt6PZ4pzfAAh+9Dg/VW4aSflgYoiQw/mjnotgUuM9NP6Kw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.VisualBasic", "id": "Microsoft.CodeAnalysis.VisualBasic", "version": "5.0.0", "sha512": "sha512-jGrTRyHgUXYd0iH1wF4svuGnB/3kPerq+iIbaLq5XpNv2+3hbZPyyDla+k/Ylpur6+9ZsDoP0ymhribbgXLmYA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "id": "Microsoft.CodeAnalysis.VisualBasic.Workspaces", "version": "5.0.0", "sha512": "sha512-sgWa3mUtCHIfPcSCyKKksrZNlYnmKWeivbZdENrPLTJQXiKXCjFcVYaxRvGBcYeAQES5J63iV03XVviSkJyMqQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.CodeAnalysis.Analyzers", "System.Composition"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Microsoft.CodeAnalysis.VisualBasic", "Microsoft.CodeAnalysis.Workspaces.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Composition", "System.IO.Pipelines", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Channels", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeAnalysis.Workspaces.Common", "id": "Microsoft.CodeAnalysis.Workspaces.Common", "version": "5.0.0", "sha512": "sha512-zbKJyIkFW+2Bx5eQl/IWBLmbPTpo9/UyAbt8vaVTXsoi4EYlXrJftCRZmUsmyQP7pg3qKMiR6czPdUjTadNkhA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "Microsoft.CodeAnalysis.Analyzers"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net5.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net6.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net7.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "net8.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "System.IO.Pipelines", "Microsoft.CodeAnalysis.Analyzers", "System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "System.Composition", "Microsoft.CodeAnalysis.Analyzers"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["Microsoft.CodeAnalysis.Common", "Humanizer.Core", "Microsoft.Bcl.AsyncInterfaces", "System.Composition", "System.IO.Pipelines", "System.Threading.Channels", "Microsoft.CodeAnalysis.Analyzers", "System.Buffers", "System.Collections.Immutable", "System.Memory", "System.Numerics.Vectors", "System.Reflection.Metadata", "System.Runtime.CompilerServices.Unsafe", "System.Text.Encoding.CodePages", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.CodeCoverage", "id": "Microsoft.CodeCoverage", "version": "18.0.1", "sha512": "sha512-0bzrz+vR49E/jtdBySXaJSPP4plwnMHE2qsyJZgZJuDdIOtLUFswInVa7krxIVz2ur6KJZFdTPXr3WMXfgnDNg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.Extensions.ObjectPool", "id": "Microsoft.Extensions.ObjectPool", "version": "10.0.1", "sha512": "sha512-dDQU1quroimptw3K9WSczyFrVmFYKEjeWXmba4BHHSEovYZw2TI77wIJTwrPHgk6j9ozE02AgjP0z0A8POZFwg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.NET.StringTools", "id": "Microsoft.NET.StringTools", "version": "18.0.2", "sha512": "sha512-s9BywFgRKhPV5OyY2t2EMQXfoDrvYSEzX4bHaWkZ/PwYJnxbxmLEqA/dh8MQ2mUOq48sGr3hbkgnghZQHeZc7Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net9.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.NET.Test.Sdk", "id": "Microsoft.NET.Test.Sdk", "version": "18.0.1", "sha512": "sha512-cfpn4IW0Q+emID8eUocS7xfmwwYgD/JX5S+zCZA2l7gcYzxZ1vvfcdZHcKkuzCH4gMbBYqcZqtBn9uZa0WJRUg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": ["Microsoft.CodeCoverage"], "net47": ["Microsoft.CodeCoverage"], "net471": ["Microsoft.CodeCoverage"], "net472": ["Microsoft.CodeCoverage"], "net48": ["Microsoft.CodeCoverage"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "net9.0": ["Microsoft.TestPlatform.TestHost", "Microsoft.CodeCoverage"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.TestPlatform.ObjectModel", "id": "Microsoft.TestPlatform.ObjectModel", "version": "18.0.1", "sha512": "sha512-qZKcsS5mN7GMwtpd+tRfAt4Dmg8yVbtWkm9iGfqY2GNOG2qW95NH6zf/FrTLXTiS7rB7zqihWGEcSspOaSK8TQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Reflection.Metadata"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Reflection.Metadata"], "net462": ["System.Reflection.Metadata"], "net47": ["System.Reflection.Metadata"], "net471": ["System.Reflection.Metadata"], "net472": ["System.Reflection.Metadata"], "net48": ["System.Reflection.Metadata"], "net5.0": ["System.Reflection.Metadata"], "net6.0": ["System.Reflection.Metadata"], "net7.0": ["System.Reflection.Metadata"], "net8.0": ["System.Reflection.Metadata"], "net9.0": ["System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Reflection.Metadata"], "netcoreapp2.1": ["System.Reflection.Metadata"], "netcoreapp2.2": ["System.Reflection.Metadata"], "netcoreapp3.0": ["System.Reflection.Metadata"], "netcoreapp3.1": ["System.Reflection.Metadata"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Reflection.Metadata"], "netstandard2.1": ["System.Reflection.Metadata"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.TestPlatform.TestHost", "id": "Microsoft.TestPlatform.TestHost", "version": "18.0.1", "sha512": "sha512-SX1FnYA8zcNv/lbWK3GjLnAx93jalmyHyQMVi+TNWA61R6xzkLMNpC3fotbfpDheXCFhwy/1rKoULyaOOe0jEg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "net9.0": ["Microsoft.TestPlatform.ObjectModel", "Newtonsoft.Json"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Microsoft.VisualStudio.SolutionPersistence", "id": "Microsoft.VisualStudio.SolutionPersistence", "version": "1.0.52", "sha512": "sha512-lHyMm5j5wRwVaC3vlCWrFH2FGy2SpFUZqLvYhzwf1cEUIQCUChU960h8kteFSf01ZkLSgJwrznmspwjW8kPtrA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Mono.Posix.NETStandard", "id": "Mono.Posix.NETStandard", "version": "1.0.0", "sha512": "sha512-RtGiutQZJAmajvQ0QvBvh73VJye85iW9f9tjZlzF88idLxNMo4lAktP/4Y9ilCpais0LDO0tpoICt9Hdv6wooA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "MSBuild.StructuredLogger", "id": "MSBuild.StructuredLogger", "version": "2.3.113", "sha512": "sha512-FS/vecrCK5mq3v4OIyd90BU6x9clwoRzW6LiIfilSQZQBYp/E9/+G9LS2Q9nB1rHEhJ8kDWnsZdytEIsNAb4Jw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "net9.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["Microsoft.Build.Framework", "Microsoft.Build.Utilities.Core", "System.Collections.Immutable", "System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "NaturalSort.Extension", "id": "NaturalSort.Extension", "version": "4.4.1", "sha512": "sha512-UTrcQcgmn7pBdx+0Oi/NxlyPslWbMt7U8I1sg/4m36OkOCS+7QKZWY3O4dKcjHD2wQaBr9L2/XWnx3ViTaehZw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "Newtonsoft.Json", "id": "Newtonsoft.Json", "version": "13.0.4", "sha512": "sha512-bR+v+E/yJ6g7GV2uXw2OrUSjYYfjLkOLC8JD4kCS23msLapnKtdJPBJA75fwHH++ErIffeIqzYITLxAur4KAXA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "NuGet.Versioning", "id": "NuGet.Versioning", "version": "7.0.1", "sha512": "sha512-ibGcrpgA8foidKNcnf+AQ4zEaVZu4OyWjcPITii6mNgwt2uhd8VFsEq7/Mb0KDxrEJaew+nWJQb7Ju166SAyzw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Buffers", "id": "System.Buffers", "version": "4.6.1", "sha512": "sha512-qve/dFwECwehSWlZmpkrrlIeATCvo/Hw2koyMrUVcDBy5gXAQrnwX8pHEoqgj8DgkrWuWW1DrQbFqoMbo+Fvrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Collections.Immutable", "id": "System.Collections.Immutable", "version": "10.0.1", "sha512": "sha512-JdD3TbINwQPseS67IR4oTJHb0KGxwnaT/j3A/VWqoKhvBIqTBgWK08UhDn7mcKEozKIfeSUWspmpW9kE2EgsHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition", "id": "System.Composition", "version": "10.0.1", "sha512": "sha512-N6NIjCYQpESjd6TSFlaZwbNrV7ZuLZuVBv/5/UuyX2z2zI+zr9lmbCXMN9IEa6gKSu561gsGjveEXAPCY1u6Ug==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net462": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net47": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net471": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net472": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net48": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Convention", "System.Composition.Hosting", "System.Composition.Runtime", "System.Composition.TypedParts"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.AttributedModel", "id": "System.Composition.AttributedModel", "version": "10.0.1", "sha512": "sha512-1YnM6Ly+qKW62DGTz9Ew+vaYpB7Y3d6R+oxaOgdJwp6vlHP9oUNsL7hD12+ugoGheWcg8Ld+X63wI8/XbLaUxA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Convention", "id": "System.Composition.Convention", "version": "10.0.1", "sha512": "sha512-/ugIOC1IAYV2+waaSutJXMvAe5cGG9bP+dKt9oGiXdAFJ3cUFqJdxwQJJSeDZ4OQ220aj6EYErDewWxUoo0QHQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel"], "net462": ["System.Composition.AttributedModel"], "net47": ["System.Composition.AttributedModel"], "net471": ["System.Composition.AttributedModel"], "net472": ["System.Composition.AttributedModel"], "net48": ["System.Composition.AttributedModel"], "net5.0": ["System.Composition.AttributedModel"], "net6.0": ["System.Composition.AttributedModel"], "net7.0": ["System.Composition.AttributedModel"], "net8.0": ["System.Composition.AttributedModel"], "net9.0": ["System.Composition.AttributedModel"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel"], "netcoreapp2.1": ["System.Composition.AttributedModel"], "netcoreapp2.2": ["System.Composition.AttributedModel"], "netcoreapp3.0": ["System.Composition.AttributedModel"], "netcoreapp3.1": ["System.Composition.AttributedModel"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel"], "netstandard2.1": ["System.Composition.AttributedModel"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Hosting", "id": "System.Composition.Hosting", "version": "10.0.1", "sha512": "sha512-LVw0GhK+7IJLeIgggvNh7wu3I3MkOBdq+O3SUA378mQeLKjwR8ElsPvyq3rqaO+de38pVl0oFt0Fz/fU/Jox4A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.Runtime"], "net462": ["System.Composition.Runtime"], "net47": ["System.Composition.Runtime"], "net471": ["System.Composition.Runtime"], "net472": ["System.Composition.Runtime"], "net48": ["System.Composition.Runtime"], "net5.0": ["System.Composition.Runtime"], "net6.0": ["System.Composition.Runtime"], "net7.0": ["System.Composition.Runtime"], "net8.0": ["System.Composition.Runtime"], "net9.0": ["System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.Runtime"], "netstandard2.1": ["System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.Runtime", "id": "System.Composition.Runtime", "version": "10.0.1", "sha512": "sha512-HYfhfKira/soAn1h3e3pOctNx5WTAZMdGFbF5rO55oXXRzzFtBoujTEjGYCyJVj8jKezGZVvIZNr1N2bmqc3sQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Composition.TypedParts", "id": "System.Composition.TypedParts", "version": "10.0.1", "sha512": "sha512-AfgzCNetIffOWMnRo2szRGaeV6YZTpS0zrkZj5/6BWWaF2qgGllTtZOBBiZqA57tVDUoVUNf/LP1I6Lt1xkrAw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net462": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net47": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net471": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net472": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net48": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net5.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net6.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net7.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net8.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "net9.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp2.2": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netcoreapp3.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"], "netstandard2.1": ["System.Composition.AttributedModel", "System.Composition.Hosting", "System.Composition.Runtime"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Configuration.ConfigurationManager", "id": "System.Configuration.ConfigurationManager", "version": "10.0.1", "sha512": "sha512-E6SRJRaRweplupgFl3IRfNZ/AeCCb+6/FNeXpG6Wgj0mzKs7EAUoJTn0V+8c+SwffVifZRz9+bvNL/hKVddkyg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Security.Cryptography.ProtectedData"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Security.Cryptography.ProtectedData"], "net6.0": ["System.Security.Cryptography.ProtectedData"], "net7.0": ["System.Security.Cryptography.ProtectedData"], "net8.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "net9.0": ["System.Diagnostics.EventLog", "System.Security.Cryptography.ProtectedData"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.1": ["System.Security.Cryptography.ProtectedData"], "netcoreapp2.2": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.0": ["System.Security.Cryptography.ProtectedData"], "netcoreapp3.1": ["System.Security.Cryptography.ProtectedData"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Security.Cryptography.ProtectedData"], "netstandard2.1": ["System.Security.Cryptography.ProtectedData"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Diagnostics.EventLog", "id": "System.Diagnostics.EventLog", "version": "10.0.1", "sha512": "sha512-Q1RjaIGlmcSUWEjPkIq6eUd/O5FVR9Kgseq/cPPldpdkRWK/GO5HkDE7B4Az1tVVjDiY/UnpRLQy2e/pH5nr1g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.IO.Pipelines", "id": "System.IO.Pipelines", "version": "10.0.1", "sha512": "sha512-hiEzKxYthGSjhsrnW/D4jCxBbE+lDG01KvAf3Iv7cQjpNU9ZoVo25Ukedth0LRymKpWcsTs3Fuawu9O6+Gnr5g==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net462": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net47": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net471": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net472": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net48": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net5.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net6.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net7.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netcoreapp3.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"], "netstandard2.1": ["System.Buffers", "System.Memory", "System.Threading.Tasks.Extensions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Memory", "id": "System.Memory", "version": "4.6.3", "sha512": "sha512-NXcNYlWoXe5cz9sb8Huo6x2dCZVYkhwKtgE00n/MoI8V4ZI/7/t+EI5bOhQFlZfFjjqM8+U6prjU/aARt7H/tA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Buffers", "System.Numerics.Vectors", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Numerics.Vectors", "id": "System.Numerics.Vectors", "version": "4.6.1", "sha512": "sha512-/rkvpUeUPlCY/2qYVQKiUsj5IKaXZcy2+SQAGAfemAdyEF5AgIgYOFNSTMWDXo09JWFX9HB+wV1yCyi2Mwi3TA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Reflection.Metadata", "id": "System.Reflection.Metadata", "version": "10.0.1", "sha512": "sha512-wY+305y+G3F14m0ba1znntQaZZSGDeCkUYJu1MP4ms0yer0wjx1lDr9PV+3PPXF1FJaKZqynUPzh5S0Oud2OHg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable"], "net462": ["System.Collections.Immutable"], "net47": ["System.Collections.Immutable"], "net471": ["System.Collections.Immutable"], "net472": ["System.Collections.Immutable"], "net48": ["System.Collections.Immutable"], "net5.0": ["System.Collections.Immutable"], "net6.0": ["System.Collections.Immutable"], "net7.0": ["System.Collections.Immutable"], "net8.0": ["System.Collections.Immutable"], "net9.0": ["System.Collections.Immutable"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable"], "netcoreapp2.1": ["System.Collections.Immutable"], "netcoreapp2.2": ["System.Collections.Immutable"], "netcoreapp3.0": ["System.Collections.Immutable"], "netcoreapp3.1": ["System.Collections.Immutable"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable"], "netstandard2.1": ["System.Collections.Immutable"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Reflection.MetadataLoadContext", "id": "System.Reflection.MetadataLoadContext", "version": "10.0.1", "sha512": "sha512-PhPuIrzG9J6x9stz1ItEOOO+avF41vmPMrvVCGZvIdNUym5i7fepNQsegXfAWYNl8Am8hswj+Gv4eIl9y3gy/Q==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net462": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net47": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net471": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net472": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net48": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net5.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net6.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net7.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "net8.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "net9.0": ["System.Collections.Immutable", "System.Reflection.Metadata"], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp2.2": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netcoreapp3.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"], "netstandard2.1": ["System.Collections.Immutable", "System.Reflection.Metadata", "System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Runtime.CompilerServices.Unsafe", "id": "System.Runtime.CompilerServices.Unsafe", "version": "6.1.2", "sha512": "sha512-t2aXWJZBkAkRrTOnw31OBELKEVSDD5YvC3O5dXaHFsR66/nRTKm1y3Iq6NwFI5u5IlKrWYfdan66V+GKKkY8hQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Security.Cryptography.ProtectedData", "id": "System.Security.Cryptography.ProtectedData", "version": "10.0.1", "sha512": "sha512-ktT9zhhc2gGmPFGOCy6m+eqnY/yBEnaSanjINTDmF4zqNmSteydGR/Hebaf1IkNOGWs2jrkXvovWO86omwLGQA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory"], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": ["System.Memory"], "net6.0": ["System.Memory"], "net7.0": ["System.Memory"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory"], "netcoreapp2.1": ["System.Memory"], "netcoreapp2.2": ["System.Memory"], "netcoreapp3.0": ["System.Memory"], "netcoreapp3.1": ["System.Memory"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory"], "netstandard2.1": ["System.Memory"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Text.Encoding.CodePages", "id": "System.Text.Encoding.CodePages", "version": "10.0.1", "sha512": "sha512-iRoZmmRaI0ZLsMd9+ESdBWZX/tYhM9kozmutE53ZJCiGFXQ7aYaD1Q6LJU8UCDclB+4kY2VfFBRNcIU87jsdgw==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net5.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net6.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net7.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.2": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netcoreapp3.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": ["System.Memory", "System.Runtime.CompilerServices.Unsafe"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.Channels", "id": "System.Threading.Channels", "version": "10.0.1", "sha512": "sha512-zRRdonHIIJHLwFRDMynwD8zZRpkF+FOFz3kqsTO0Az36YBoRsDVjrhnH79P2+UUFl4eBAbgr9U/m7qFtNBtbnA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net462": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net47": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net471": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net472": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net48": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.1": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp2.2": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["Microsoft.Bcl.AsyncInterfaces", "System.Threading.Tasks.Extensions"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "System.Threading.Tasks.Extensions", "id": "System.Threading.Tasks.Extensions", "version": "4.6.3", "sha512": "sha512-zWRHXIBnbfzQE1SamNoW9X5NjEcW/JNAtvVxGKd3bcg71wQVmoI3pDq+WUa2A+temXSNCm7707hmAFwwcYlK0A==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": ["System.Runtime.CompilerServices.Unsafe"], "net462": ["System.Runtime.CompilerServices.Unsafe"], "net47": ["System.Runtime.CompilerServices.Unsafe"], "net471": ["System.Runtime.CompilerServices.Unsafe"], "net472": ["System.Runtime.CompilerServices.Unsafe"], "net48": ["System.Runtime.CompilerServices.Unsafe"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": ["System.Runtime.CompilerServices.Unsafe"], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": ["System.Runtime.CompilerServices.Unsafe"], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit", "id": "xunit", "version": "2.9.3", "sha512": "sha512-3/ayVPC7NQWQENR5REbOgXYsbhoJsmpnxQa5pO4lxbjGbckOs62nsm4kLErzc8ng7V5Xz08uwVjMqaZGJiXCrg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net11": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net20": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net30": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net35": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net40": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net403": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net45": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net451": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net452": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net46": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net461": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net462": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net47": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net471": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net472": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net48": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net5.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net6.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net7.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net8.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "net9.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp2.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netcoreapp3.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.1": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.2": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.3": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.4": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.5": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard1.6": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.0": ["xunit.core", "xunit.assert", "xunit.analyzers"], "netstandard2.1": ["xunit.core", "xunit.assert", "xunit.analyzers"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.abstractions", "id": "xunit.abstractions", "version": "2.0.3", "sha512": "sha512-PKJri5f0qEQPFvgY6CZR9XG8JROlWSdC/ZYLkkDQuID++Egn+yWjB+Yf57AZ8U6GRlP7z33uDQ4/r5BZPer2JA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.analyzers", "id": "xunit.analyzers", "version": "1.26.0", "sha512": "sha512-gJ6shgzXmTVaWJsRCpWrfp1ymSSIwjandPL5myGv3wt+96TkARHFUV1bAS4omFPPkSLkFV7nOssjCeEIorPE+w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.assert", "id": "xunit.assert", "version": "2.9.3", "sha512": "sha512-wfqwCKAhSWGy9P/dPqDGSIBnPW3sUJ49MEfcTqNF+5BgJwjwtHb9SE7ajYZuR8ymTd8dwxoEGnlJHiejbgDv9w==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": [], "net48": [], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.core", "id": "xunit.core", "version": "2.9.3", "sha512": "sha512-cv2sO37qJkIbBL3fXDIn3EPQ2zK8LQ6FkMJNnn1xc9n8mo3ik0URA4MfUNCmwDDCx83ZiJeRrJ0y1ykasojNJg==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net11": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net20": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net30": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net35": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net40": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net403": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net45": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net451": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net452": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net46": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net461": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net462": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net47": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net471": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net472": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net48": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net5.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net6.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net7.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net8.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "net9.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp2.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netcoreapp3.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.1": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.2": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.3": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.4": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.5": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard1.6": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.0": ["xunit.extensibility.core", "xunit.extensibility.execution"], "netstandard2.1": ["xunit.extensibility.core", "xunit.extensibility.execution"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.extensibility.core", "id": "xunit.extensibility.core", "version": "2.9.3", "sha512": "sha512-S0a+jmIF/DraKuJ+FfWbqXMwvpcKxjP3GdrQzz5pr3GYtgII2XfDdAhkU/5VIWqWon2R6Q31X/9sTGaU+koDaQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.abstractions"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.extensibility.execution", "id": "xunit.extensibility.execution", "version": "2.9.3", "sha512": "sha512-IidoBSrGw/KhWzZsKXIcStohj/oRFZizbWeUv+0hOFLeMJMegSW5QoGNzmjQuF8BuRtCyPQQukWSYdNnnfPAkA==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.extensibility.core"], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": ["xunit.extensibility.core"], "net451": ["xunit.extensibility.core"], "net452": ["xunit.extensibility.core"], "net46": ["xunit.extensibility.core"], "net461": ["xunit.extensibility.core"], "net462": ["xunit.extensibility.core"], "net47": ["xunit.extensibility.core"], "net471": ["xunit.extensibility.core"], "net472": ["xunit.extensibility.core"], "net48": ["xunit.extensibility.core"], "net5.0": ["xunit.extensibility.core"], "net6.0": ["xunit.extensibility.core"], "net7.0": ["xunit.extensibility.core"], "net8.0": ["xunit.extensibility.core"], "net9.0": ["xunit.extensibility.core"], "netcoreapp1.0": ["xunit.extensibility.core"], "netcoreapp1.1": ["xunit.extensibility.core"], "netcoreapp2.0": ["xunit.extensibility.core"], "netcoreapp2.1": ["xunit.extensibility.core"], "netcoreapp2.2": ["xunit.extensibility.core"], "netcoreapp3.0": ["xunit.extensibility.core"], "netcoreapp3.1": ["xunit.extensibility.core"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.extensibility.core"], "netstandard1.2": ["xunit.extensibility.core"], "netstandard1.3": ["xunit.extensibility.core"], "netstandard1.4": ["xunit.extensibility.core"], "netstandard1.5": ["xunit.extensibility.core"], "netstandard1.6": ["xunit.extensibility.core"], "netstandard2.0": ["xunit.extensibility.core"], "netstandard2.1": ["xunit.extensibility.core"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.runner.utility", "id": "xunit.runner.utility", "version": "2.9.3", "sha512": "sha512-L2zlPa7Ci/Awf5LdeTOvKOanev1bB6xV2Gxbrc+EDDN1hO/j0AIbu5PM8lXgkX69/8xaaex7zrxHZd8gcz2ilQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": ["xunit.abstractions"], "net11": [], "net20": [], "net30": [], "net35": ["xunit.abstractions"], "net40": ["xunit.abstractions"], "net403": ["xunit.abstractions"], "net45": ["xunit.abstractions"], "net451": ["xunit.abstractions"], "net452": ["xunit.abstractions"], "net46": ["xunit.abstractions"], "net461": ["xunit.abstractions"], "net462": ["xunit.abstractions"], "net47": ["xunit.abstractions"], "net471": ["xunit.abstractions"], "net472": ["xunit.abstractions"], "net48": ["xunit.abstractions"], "net5.0": ["xunit.abstractions"], "net6.0": ["xunit.abstractions"], "net7.0": ["xunit.abstractions"], "net8.0": ["xunit.abstractions"], "net9.0": ["xunit.abstractions"], "netcoreapp1.0": ["xunit.abstractions"], "netcoreapp1.1": ["xunit.abstractions"], "netcoreapp2.0": ["xunit.abstractions"], "netcoreapp2.1": ["xunit.abstractions"], "netcoreapp2.2": ["xunit.abstractions"], "netcoreapp3.0": ["xunit.abstractions"], "netcoreapp3.1": ["xunit.abstractions"], "netstandard": [], "netstandard1.0": [], "netstandard1.1": ["xunit.abstractions"], "netstandard1.2": ["xunit.abstractions"], "netstandard1.3": ["xunit.abstractions"], "netstandard1.4": ["xunit.abstractions"], "netstandard1.5": ["xunit.abstractions"], "netstandard1.6": ["xunit.abstractions"], "netstandard2.0": ["xunit.abstractions"], "netstandard2.1": ["xunit.abstractions"]}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, + {"name": "xunit.runner.visualstudio", "id": "xunit.runner.visualstudio", "version": "3.1.5", "sha512": "sha512-b/tvN9kXtUd3wSSYbC80Ic6y/dYlYbNSvatYiv71iozPhXqM4EaOuHujkIJh85b+wY6dgf25k9ENSy8jN6mlvQ==", "sources": ["https://api.nuget.org/v3/index.json"], "dependencies": {"net10.0": [], "net11": [], "net20": [], "net30": [], "net35": [], "net40": [], "net403": [], "net45": [], "net451": [], "net452": [], "net46": [], "net461": [], "net462": [], "net47": [], "net471": [], "net472": ["Microsoft.TestPlatform.ObjectModel"], "net48": ["Microsoft.TestPlatform.ObjectModel"], "net5.0": [], "net6.0": [], "net7.0": [], "net8.0": [], "net9.0": [], "netcoreapp1.0": [], "netcoreapp1.1": [], "netcoreapp2.0": [], "netcoreapp2.1": [], "netcoreapp2.2": [], "netcoreapp3.0": [], "netcoreapp3.1": [], "netstandard": [], "netstandard1.0": [], "netstandard1.1": [], "netstandard1.2": [], "netstandard1.3": [], "netstandard1.4": [], "netstandard1.5": [], "netstandard1.6": [], "netstandard2.0": [], "netstandard2.1": []}, "targeting_pack_overrides": [], "framework_list": [], "tools": {}}, ], ) diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 34a8c2f3799..73990a2c6fd 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.55 + +No user-facing changes. + ## 1.7.54 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md new file mode 100644 index 00000000000..8c13e6f5191 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.55.md @@ -0,0 +1,3 @@ +## 1.7.55 + +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 7d3013ec3c0..26e02fb41f4 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.54 +lastReleaseVersion: 1.7.55 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index a758d0d4ca4..46f964a1bae 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.55-dev +version: 1.7.56-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 34a8c2f3799..73990a2c6fd 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.55 + +No user-facing changes. + ## 1.7.54 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md new file mode 100644 index 00000000000..8c13e6f5191 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.55.md @@ -0,0 +1,3 @@ +## 1.7.55 + +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 7d3013ec3c0..26e02fb41f4 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.54 +lastReleaseVersion: 1.7.55 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index ce6202bf9c2..cb91019ff14 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.55-dev +version: 1.7.56-dev groups: - csharp - solorigate diff --git a/csharp/ql/integration-tests/all-platforms/autobuild/global.json b/csharp/ql/integration-tests/all-platforms/autobuild/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/autobuild/global.json +++ b/csharp/ql/integration-tests/all-platforms/autobuild/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected new file mode 100644 index 00000000000..9654753b642 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.expected @@ -0,0 +1,4 @@ +| proj1/Program.cs:0:0:0:0 | proj1/Program.cs | +| proj1/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | proj1/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| proj1/obj/Debug/net10.0/proj1.AssemblyInfo.cs:0:0:0:0 | proj1/obj/Debug/net10.0/proj1.AssemblyInfo.cs | +| proj1/obj/Debug/net10.0/proj1.GlobalUsings.g.cs:0:0:0:0 | proj1/obj/Debug/net10.0/proj1.GlobalUsings.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql new file mode 100644 index 00000000000..bea5557a25f --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/Files.ql @@ -0,0 +1,5 @@ +import csharp + +from File f +where f.fromSource() +select f diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx new file mode 100644 index 00000000000..27d7235ae8b --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/autobuild_slnx.slnx @@ -0,0 +1,5 @@ + + + + diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json new file mode 100644 index 00000000000..481e95ec7be --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100" + } +} diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs new file mode 100644 index 00000000000..3751555cbd3 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj new file mode 100644 index 00000000000..ed9781c223a --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj1/proj1.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs new file mode 100644 index 00000000000..3751555cbd3 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj new file mode 100644 index 00000000000..ed9781c223a --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/proj2/proj2.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py new file mode 100644 index 00000000000..b0cc524b00d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/autobuild_slnx/test.py @@ -0,0 +1,3 @@ +def test(codeql, csharp): + # Only proj1 is included in the solution, so only it should be built (and extracted). + codeql.database.create() diff --git a/csharp/ql/integration-tests/all-platforms/binlog/Files.expected b/csharp/ql/integration-tests/all-platforms/binlog/Files.expected index 1b566ea2fd2..8535872531f 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/binlog/Files.expected @@ -1,10 +1,10 @@ | a/A.cs:0:0:0:0 | a/A.cs | -| a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| a/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net9.0/test.AssemblyInfo.cs | -| a/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net9.0/test.GlobalUsings.g.cs | +| a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| a/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net10.0/test.AssemblyInfo.cs | +| a/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net10.0/test.GlobalUsings.g.cs | | b/B.cs:0:0:0:0 | b/B.cs | -| b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| b/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net9.0/test.AssemblyInfo.cs | -| b/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net9.0/test.GlobalUsings.g.cs | -| generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | -| generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| b/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net10.0/test.AssemblyInfo.cs | +| b/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net10.0/test.GlobalUsings.g.cs | +| generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog/a/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog/b/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog/global.json b/csharp/ql/integration-tests/all-platforms/binlog/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog/global.json +++ b/csharp/ql/integration-tests/all-platforms/binlog/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected b/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected index 1b566ea2fd2..8535872531f 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/Files.expected @@ -1,10 +1,10 @@ | a/A.cs:0:0:0:0 | a/A.cs | -| a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| a/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net9.0/test.AssemblyInfo.cs | -| a/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net9.0/test.GlobalUsings.g.cs | +| a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | a/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| a/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | a/obj/Debug/net10.0/test.AssemblyInfo.cs | +| a/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | a/obj/Debug/net10.0/test.GlobalUsings.g.cs | | b/B.cs:0:0:0:0 | b/B.cs | -| b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| b/obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net9.0/test.AssemblyInfo.cs | -| b/obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net9.0/test.GlobalUsings.g.cs | -| generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | -| generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net9.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | b/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| b/obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | b/obj/Debug/net10.0/test.AssemblyInfo.cs | +| b/obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | b/obj/Debug/net10.0/test.GlobalUsings.g.cs | +| generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/a/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | +| generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | generated/b/test.csproj (net10.0)/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/a/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj b/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/b/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json b/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json +++ b/csharp/ql/integration-tests/all-platforms/binlog_multiple/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj index 6568b3dcfb4..a3a34b647cd 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj +++ b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/BlazorTest.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor/BlazorTest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor/Files.expected b/csharp/ql/integration-tests/all-platforms/blazor/Files.expected index 5242b9f73d1..cd035dc7ae9 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/blazor/Files.expected @@ -8,15 +8,18 @@ | BlazorTest/Components/Routes.razor:0:0:0:0 | BlazorTest/Components/Routes.razor | | BlazorTest/Components/_Imports.razor:0:0:0:0 | BlazorTest/Components/_Imports.razor | | BlazorTest/Program.cs:0:0:0:0 | BlazorTest/Program.cs | -| BlazorTest/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| BlazorTest/obj/Debug/net9.0/BlazorTest.AssemblyInfo.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/BlazorTest.AssemblyInfo.cs | -| BlazorTest/obj/Debug/net9.0/BlazorTest.GlobalUsings.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/BlazorTest.GlobalUsings.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| BlazorTest/obj/Debug/net10.0/BlazorTest.AssemblyInfo.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/BlazorTest.AssemblyInfo.cs | +| BlazorTest/obj/Debug/net10.0/BlazorTest.GlobalUsings.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/BlazorTest.GlobalUsings.g.cs | +| BlazorTest/obj/Debug/net10.0/EmbeddedAttribute.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/EmbeddedAttribute.cs | +| BlazorTest/obj/Debug/net10.0/ValidatableTypeAttribute.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/ValidatableTypeAttribute.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_App_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_MainLayout_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Layout_NavMenu_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyInput_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_MyOutput_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_Error_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Routes_razor.g.cs | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs:0:0:0:0 | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components__Imports_razor.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected b/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected index 2129be6da47..6518eb74a9f 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected +++ b/csharp/ql/integration-tests/all-platforms/blazor/XSS.expected @@ -3,8 +3,8 @@ | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | $@ flows to here and is written to HTML or JavaScript. | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | User-provided value | | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | $@ flows to here and is written to HTML or JavaScript. | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | User-provided value | edges -| BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | provenance | Src:MaD:2 MaD:3 | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | BlazorTest/Components/MyOutput.razor:5:53:5:57 | access to property Value | provenance | Sink:MaD:1 | +| BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | provenance | Src:MaD:2 MaD:3 | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | BlazorTest/Components/MyOutput.razor:5:53:5:57 | access to property Value | provenance | Sink:MaD:1 | models | 1 | Sink: Microsoft.AspNetCore.Components; MarkupString; false; MarkupString; (System.String); ; Argument[0]; html-injection; manual | | 2 | Source: Microsoft.AspNetCore.Components; SupplyParameterFromQueryAttribute; false; ; ; Attribute.Getter; ReturnValue; remote; manual | @@ -14,5 +14,5 @@ nodes | BlazorTest/Components/Pages/TestPage.razor:11:48:11:55 | access to property UrlParam | semmle.label | access to property UrlParam | | BlazorTest/Components/Pages/TestPage.razor:20:60:20:69 | access to property QueryParam | semmle.label | access to property QueryParam | | BlazorTest/Components/Pages/TestPage.razor:85:23:85:32 | access to property QueryParam : String | semmle.label | access to property QueryParam : String | -| BlazorTest/obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | semmle.label | call to method TypeCheck : String | +| BlazorTest/obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Components_Pages_TestPage_razor.g.cs:553:16:561:13 | call to method TypeCheck : String | semmle.label | call to method TypeCheck : String | subpaths diff --git a/csharp/ql/integration-tests/all-platforms/blazor/global.json b/csharp/ql/integration-tests/all-platforms/blazor/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj index 6568b3dcfb4..a3a34b647cd 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/BlazorTest.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/BlazorTest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json +++ b/csharp/ql/integration-tests/all-platforms/blazor_build_mode_none/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json b/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json +++ b/csharp/ql/integration-tests/all-platforms/conditional_compilation/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj b/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj index d457711bd99..a421553fde2 100644 --- a/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/conditional_compilation/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected b/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected index 946bef62462..ef4dc96389f 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/cshtml/Files.expected @@ -1,7 +1,8 @@ | Program.cs:0:0:0:0 | Program.cs | | Views/Home/Index.cshtml:0:0:0:0 | Views/Home/Index.cshtml | -| obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| obj/Debug/net9.0/cshtml.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net9.0/cshtml.AssemblyInfo.cs | -| obj/Debug/net9.0/cshtml.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net9.0/cshtml.GlobalUsings.g.cs | -| obj/Debug/net9.0/cshtml.RazorAssemblyInfo.cs:0:0:0:0 | obj/Debug/net9.0/cshtml.RazorAssemblyInfo.cs | -| obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs:0:0:0:0 | obj/Debug/net9.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs | +| obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| obj/Debug/net10.0/cshtml.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.AssemblyInfo.cs | +| obj/Debug/net10.0/cshtml.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.GlobalUsings.g.cs | +| obj/Debug/net10.0/cshtml.RazorAssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/cshtml.RazorAssemblyInfo.cs | +| obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs:0:0:0:0 | obj/Debug/net10.0/generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs | +| obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs:0:0:0:0 | obj/Debug/net10.0/generated/Microsoft.CodeAnalysis.Razor.Compiler/Microsoft.NET.Sdk.Razor.SourceGenerators.RazorSourceGenerator/Views_Home_Index_cshtml.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj index bdb0e0d0c31..3fe9d113e46 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml/cshtml.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml/global.json b/csharp/ql/integration-tests/all-platforms/cshtml/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj index bdb0e0d0c31..3fe9d113e46 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/cshtml.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj index bdb0e0d0c31..3fe9d113e46 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/cshtml.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_disabled/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj index 6568b3dcfb4..a3a34b647cd 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/cshtml.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json +++ b/csharp/ql/integration-tests/all-platforms/cshtml_standalone_flowsteps/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json b/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_dotnet_incompatible/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json b/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_missing_project_files/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj index 6bb5914483b..06f7ce8bff0 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/diag_missing_xamarin_sdk/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable $(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj index 546e25e0172..b3b85d19406 100644 --- a/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/diag_recursive_generics/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_build/dotnet_build.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_build/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/dotnet_build.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_no_args_inject/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_pack/dotnet_pack.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_pack/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_publish/dotnet_publish.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_publish/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj b/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/dotnet_run.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json b/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json +++ b/csharp/ql/integration-tests/all-platforms/dotnet_run/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected b/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected index 48151f8387f..9e84046bb15 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected +++ b/csharp/ql/integration-tests/all-platforms/source_generator/Files.expected @@ -1,6 +1,7 @@ +| Generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs:0:0:0:0 | Generated/Microsoft.AspNetCore.App.SourceGenerators/Microsoft.AspNetCore.SourceGenerators.PublicProgramSourceGenerator/PublicTopLevelProgram.Generated.g.cs | | Generated/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs:0:0:0:0 | Generated/System.Text.RegularExpressions.Generator/System.Text.RegularExpressions.Generator.RegexGenerator/RegexGenerator.g.cs | | Generated/x.cs:0:0:0:0 | Generated/x.cs | | Program.cs:0:0:0:0 | Program.cs | -| obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| obj/Debug/net9.0/test.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net9.0/test.AssemblyInfo.cs | -| obj/Debug/net9.0/test.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net9.0/test.GlobalUsings.g.cs | +| obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs:0:0:0:0 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| obj/Debug/net10.0/test.AssemblyInfo.cs:0:0:0:0 | obj/Debug/net10.0/test.AssemblyInfo.cs | +| obj/Debug/net10.0/test.GlobalUsings.g.cs:0:0:0:0 | obj/Debug/net10.0/test.GlobalUsings.g.cs | diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/global.json b/csharp/ql/integration-tests/all-platforms/source_generator/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/global.json +++ b/csharp/ql/integration-tests/all-platforms/source_generator/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj b/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj index 966a7fdb5c5..bfbc94c22ea 100644 --- a/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj +++ b/csharp/ql/integration-tests/all-platforms/source_generator/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected b/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected index e9b4f2e2428..662b7d18f72 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone/DatabaseQualityDiagnostics.expected @@ -1,6 +1,6 @@ diagnosticAttributes -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityCliSummaryTable | true | -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityStatusPage | true | -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityTelemetry | true | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityCliSummaryTable | true | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityStatusPage | true | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | visibilityTelemetry | true | #select -| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 25 % (threshold 85 %). Percentage of expressions with known type: 58 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | 1 | +| Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | Scanning C# code completed successfully, but the scan encountered issues. This may be caused by problems identifying dependencies or use of generated source code. Some metrics of the database quality are: Percentage of calls with call target: 40 % (threshold 85 %). Percentage of expressions with known type: 64 % (threshold 85 %). Ideally these metrics should be above their thresholds. Addressing these issues is advisable to avoid false-positives or missing results. If they cannot be addressed, consider scanning C# using either the `autobuild` or `manual` [build modes](https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#comparison-of-the-build-modes). | 1 | diff --git a/csharp/ql/integration-tests/all-platforms/standalone/global.json b/csharp/ql/integration-tests/all-platforms/standalone/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj index 92e46ddaccf..a15a29bf12c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_buildless_option/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json b/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_dependencies_net48/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj index 29604e2cbd8..92273963f8c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_dependency_dir/proj/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json b/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_failed/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj b/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_failed/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected b/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected index 469a8556db6..0de697aab2d 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone_resx/Members.expected @@ -1,4 +1,5 @@ | Program | Program.
$ | +| Program | Program. | | Program | Program.Program | | Resx.Test1.Test2.test | Resx.Test1.Test2.test.Culture | | Resx.Test1.Test2.test | Resx.Test1.Test2.test.GetResourceString | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json b/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_resx/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj b/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj index 951f79551f2..919ededcdce 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_resx/resx.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable Resx.Test1.Test2 diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected new file mode 100644 index 00000000000..3bd3941b27c --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.expected @@ -0,0 +1,19 @@ +| All NuGet feeds reachable | 1.0 | +| Failed project restore with package source error | 0.0 | +| Failed solution restore with package source error | 0.0 | +| Inherited NuGet feed count | 1.0 | +| NuGet feed responsiveness checked | 1.0 | +| Project files on filesystem | 2.0 | +| Reachable fallback NuGet feed count | 1.0 | +| Resource extraction enabled | 0.0 | +| Restored .NET framework variants | 1.0 | +| Restored projects through solution files | 2.0 | +| Solution files on filesystem | 1.0 | +| Source files generated | 1.0 | +| Source files on filesystem | 2.0 | +| Successfully restored project files | 0.0 | +| Successfully restored solution files | 1.0 | +| Unresolved references | 0.0 | +| UseWPF set | 0.0 | +| UseWindowsForms set | 0.0 | +| WebView extraction enabled | 1.0 | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql new file mode 100644 index 00000000000..078e352be4d --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/CompilationInfo.ql @@ -0,0 +1,16 @@ +import csharp +import semmle.code.csharp.commons.Diagnostics + +query predicate compilationInfo(string key, float value) { + key != "Resolved references" and + key != "Resolved assembly conflicts" and + not key.matches(["Compiler diagnostic count for%", "Extractor message count for group%"]) and + exists(Compilation c, string infoKey, string infoValue | infoValue = c.getInfo(infoKey) | + key = infoKey and + value = infoValue.toFloat() + or + not exists(infoValue.toFloat()) and + key = infoKey + ": " + infoValue and + value = 1 + ) +} diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json b/csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json new file mode 100644 index 00000000000..481e95ec7be --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100" + } +} diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs new file mode 100644 index 00000000000..8f662eb2ce6 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/Class1.cs @@ -0,0 +1,6 @@ +namespace mylib; + +public class Class1 +{ + +} diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj new file mode 100644 index 00000000000..b760144708e --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/mylib/mylib.csproj @@ -0,0 +1,9 @@ + + + + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs new file mode 100644 index 00000000000..3751555cbd3 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/Program.cs @@ -0,0 +1,2 @@ +// See https://aka.ms/new-console-template for more information +Console.WriteLine("Hello, World!"); diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj new file mode 100644 index 00000000000..ed9781c223a --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/proj/proj.csproj @@ -0,0 +1,10 @@ + + + + Exe + net10.0 + enable + enable + + + diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py new file mode 100644 index 00000000000..237174a46c6 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.py @@ -0,0 +1,2 @@ +def test(codeql, csharp): + codeql.database.create(build_mode="none") diff --git a/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx new file mode 100644 index 00000000000..40c1aa63ae1 --- /dev/null +++ b/csharp/ql/integration-tests/all-platforms/standalone_slnx/test.slnx @@ -0,0 +1,4 @@ + + + + diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected b/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected index d973f6d8be4..aa00093875c 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/Assemblies.expected @@ -1,49 +1,50 @@ -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Design.dll:0:0:0:0 | System.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Design.dll:0:0:0:0 | System.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.GdiPlus.dll:0:0:0:0 | System.Private.Windows.GdiPlus, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Primitives.dll:0:0:0:0 | System.Windows.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json b/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj b/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj index 355e815cdee..848cf9fdca5 100644 --- a/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj +++ b/csharp/ql/integration-tests/all-platforms/standalone_winforms/winforms.csproj @@ -2,10 +2,10 @@ WinExe - net9.0-windows + net10.0-windows enable true enable - \ No newline at end of file + diff --git a/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected b/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected index ee3063b3c2b..67a23e2d941 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected +++ b/csharp/ql/integration-tests/linux/compiler_args/CompilerArgs.expected @@ -5,199 +5,203 @@ | 4 | /fullpaths | | 5 | /nostdlib+ | | 6 | /errorreport:prompt | -| 7 | /warn:9 | -| 8 | /define:TRACE;DEBUG;NET;NET9_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER | +| 7 | /warn:10 | +| 8 | /define:TRACE;DEBUG;NET;NET10_0;NETCOREAPP;NET5_0_OR_GREATER;NET6_0_OR_GREATER;NET7_0_OR_GREATER;NET8_0_OR_GREATER;NET9_0_OR_GREATER;NET10_0_OR_GREATER;NETCOREAPP1_0_OR_GREATER;NETCOREAPP1_1_OR_GREATER;NETCOREAPP2_0_OR_GREATER;NETCOREAPP2_1_OR_GREATER;NETCOREAPP2_2_OR_GREATER;NETCOREAPP3_0_OR_GREATER;NETCOREAPP3_1_OR_GREATER | | 9 | /preferreduilang:en | | 10 | /highentropyva+ | | 11 | /nullable:enable | -| 12 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll | -| 13 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll | -| 14 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll | -| 15 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll | -| 16 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll | -| 17 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/mscorlib.dll | -| 18 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/netstandard.dll | -| 19 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.AppContext.dll | -| 20 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Buffers.dll | -| 21 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll | -| 22 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.dll | -| 23 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll | -| 24 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll | -| 25 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll | -| 26 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll | -| 27 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll | -| 28 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.dll | -| 29 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll | -| 30 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll | -| 31 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll | -| 32 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Configuration.dll | -| 33 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Console.dll | -| 34 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Core.dll | -| 35 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Data.Common.dll | -| 36 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll | -| 37 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Data.dll | -| 38 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll | -| 39 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll | -| 40 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll | -| 41 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll | -| 42 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll | -| 43 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll | -| 44 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll | -| 45 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll | -| 46 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll | -| 47 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll | -| 48 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.dll | -| 49 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Drawing.dll | -| 50 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll | -| 51 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll | -| 52 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll | -| 53 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Formats.Tar.dll | -| 54 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll | -| 55 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Globalization.dll | -| 56 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll | -| 57 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll | -| 58 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.dll | -| 59 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll | -| 60 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll | -| 61 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.dll | -| 62 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll | -| 63 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll | -| 64 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll | -| 65 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll | -| 66 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll | -| 67 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll | -| 68 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll | -| 69 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll | -| 70 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll | -| 71 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.Pipes.dll | -| 72 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll | -| 73 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.dll | -| 74 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll | -| 75 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll | -| 76 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll | -| 77 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Memory.dll | -| 78 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.dll | -| 79 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Http.dll | -| 80 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll | -| 81 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll | -| 82 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Mail.dll | -| 83 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll | -| 84 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll | -| 85 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Ping.dll | -| 86 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Primitives.dll | -| 87 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Quic.dll | -| 88 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Requests.dll | -| 89 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Security.dll | -| 90 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll | -| 91 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.Sockets.dll | -| 92 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebClient.dll | -| 93 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll | -| 94 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll | -| 95 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll | -| 96 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll | -| 97 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Numerics.dll | -| 98 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll | -| 99 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ObjectModel.dll | -| 100 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll | -| 101 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.dll | -| 102 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll | -| 103 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll | -| 104 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll | -| 105 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll | -| 106 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll | -| 107 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll | -| 108 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll | -| 109 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Resources.Reader.dll | -| 110 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll | -| 111 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Resources.Writer.dll | -| 112 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll | -| 113 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll | -| 114 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.dll | -| 115 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll | -| 116 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll | -| 117 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll | -| 118 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll | -| 119 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll | -| 120 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll | -| 121 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll | -| 122 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll | -| 123 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll | -| 124 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll | -| 125 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll | -| 126 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll | -| 127 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll | -| 128 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll | -| 129 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Claims.dll | -| 130 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll | -| 131 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll | -| 132 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll | -| 133 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll | -| 134 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll | -| 135 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll | -| 136 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll | -| 137 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll | -| 138 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.dll | -| 139 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Principal.dll | -| 140 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll | -| 141 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Security.SecureString.dll | -| 142 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll | -| 143 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ServiceProcess.dll | -| 144 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll | -| 145 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encoding.dll | -| 146 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll | -| 147 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll | -| 148 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.Json.dll | -| 149 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll | -| 150 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Channels.dll | -| 151 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.dll | -| 152 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll | -| 153 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll | -| 154 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll | -| 155 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll | -| 156 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll | -| 157 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Thread.dll | -| 158 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll | -| 159 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Threading.Timer.dll | -| 160 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Transactions.dll | -| 161 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Transactions.Local.dll | -| 162 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.ValueTuple.dll | -| 163 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Web.dll | -| 164 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll | -| 165 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Windows.dll | -| 166 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.dll | -| 167 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.Linq.dll | -| 168 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll | -| 169 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll | -| 170 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll | -| 171 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll | -| 172 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll | -| 173 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XPath.dll | -| 174 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll | -| 175 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/ref/net9.0/WindowsBase.dll | -| 176 | /debug+ | -| 177 | /debug:portable | -| 178 | /filealign:512 | -| 179 | /generatedfilesout:obj/Debug/net9.0//generated | -| 180 | /optimize- | -| 181 | /out:obj/Debug/net9.0/test.dll | -| 182 | /refout:obj/Debug/net9.0/refint/test.dll | -| 183 | /target:exe | -| 184 | /warnaserror- | -| 185 | /utf8output | -| 186 | /deterministic+ | -| 187 | /langversion:13.0 | -| 188 | /analyzerconfig:obj/Debug/net9.0/test.GeneratedMSBuildEditorConfig.editorconfig | -| 189 | /analyzerconfig:/usr/share/dotnet/sdk/9.0.304/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig | -| 190 | /analyzer:/usr/share/dotnet/sdk/9.0.304/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll | -| 191 | /analyzer:/usr/share/dotnet/sdk/9.0.304/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll | -| 192 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll | -| 193 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll | -| 194 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll | -| 195 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll | -| 196 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll | -| 197 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/9.0.8/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll | -| 198 | Program.cs | -| 199 | obj/Debug/net9.0/test.GlobalUsings.g.cs | -| 200 | obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs | -| 201 | obj/Debug/net9.0/test.AssemblyInfo.cs | -| 202 | /warnaserror+:NU1605,SYSLIB0011 | +| 12 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll | +| 13 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll | +| 14 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll | +| 15 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll | +| 16 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll | +| 17 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/mscorlib.dll | +| 18 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/netstandard.dll | +| 19 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.AppContext.dll | +| 20 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Buffers.dll | +| 21 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll | +| 22 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.dll | +| 23 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll | +| 24 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll | +| 25 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll | +| 26 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll | +| 27 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll | +| 28 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.dll | +| 29 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll | +| 30 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll | +| 31 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll | +| 32 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Configuration.dll | +| 33 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Console.dll | +| 34 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Core.dll | +| 35 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Data.Common.dll | +| 36 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll | +| 37 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Data.dll | +| 38 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll | +| 39 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll | +| 40 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll | +| 41 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll | +| 42 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll | +| 43 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll | +| 44 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll | +| 45 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll | +| 46 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll | +| 47 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll | +| 48 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.dll | +| 49 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Drawing.dll | +| 50 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll | +| 51 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll | +| 52 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll | +| 53 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Formats.Tar.dll | +| 54 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll | +| 55 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Globalization.dll | +| 56 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll | +| 57 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll | +| 58 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.dll | +| 59 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll | +| 60 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll | +| 61 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.dll | +| 62 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll | +| 63 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll | +| 64 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll | +| 65 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll | +| 66 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll | +| 67 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll | +| 68 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll | +| 69 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll | +| 70 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll | +| 71 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.Pipes.dll | +| 72 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll | +| 73 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll | +| 74 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.dll | +| 75 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll | +| 76 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll | +| 77 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll | +| 78 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Memory.dll | +| 79 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.dll | +| 80 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.dll | +| 81 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll | +| 82 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll | +| 83 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Mail.dll | +| 84 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll | +| 85 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll | +| 86 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Ping.dll | +| 87 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Primitives.dll | +| 88 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Quic.dll | +| 89 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Requests.dll | +| 90 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Security.dll | +| 91 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll | +| 92 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll | +| 93 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.Sockets.dll | +| 94 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebClient.dll | +| 95 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll | +| 96 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll | +| 97 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll | +| 98 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll | +| 99 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.dll | +| 100 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll | +| 101 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ObjectModel.dll | +| 102 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll | +| 103 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.dll | +| 104 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll | +| 105 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll | +| 106 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll | +| 107 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll | +| 108 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll | +| 109 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll | +| 110 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll | +| 111 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Reader.dll | +| 112 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll | +| 113 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Resources.Writer.dll | +| 114 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll | +| 115 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll | +| 116 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.dll | +| 117 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll | +| 118 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll | +| 119 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll | +| 120 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll | +| 121 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll | +| 122 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll | +| 123 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll | +| 124 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll | +| 125 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll | +| 126 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll | +| 127 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll | +| 128 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll | +| 129 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll | +| 130 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll | +| 131 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Claims.dll | +| 132 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll | +| 133 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll | +| 134 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll | +| 135 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll | +| 136 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll | +| 137 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll | +| 138 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll | +| 139 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll | +| 140 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.dll | +| 141 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.dll | +| 142 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll | +| 143 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Security.SecureString.dll | +| 144 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll | +| 145 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ServiceProcess.dll | +| 146 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll | +| 147 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.dll | +| 148 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll | +| 149 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll | +| 150 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.Json.dll | +| 151 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll | +| 152 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll | +| 153 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Channels.dll | +| 154 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.dll | +| 155 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll | +| 156 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll | +| 157 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll | +| 158 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll | +| 159 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll | +| 160 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Thread.dll | +| 161 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll | +| 162 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Threading.Timer.dll | +| 163 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.dll | +| 164 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Transactions.Local.dll | +| 165 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.ValueTuple.dll | +| 166 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.dll | +| 167 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll | +| 168 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Windows.dll | +| 169 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.dll | +| 170 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Linq.dll | +| 171 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll | +| 172 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll | +| 173 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll | +| 174 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll | +| 175 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll | +| 176 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.dll | +| 177 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll | +| 178 | /reference:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/ref/net10.0/WindowsBase.dll | +| 179 | /features:"InterceptorsNamespaces=;Microsoft.Extensions.Validation.Generated" | +| 180 | /debug+ | +| 181 | /debug:portable | +| 182 | /filealign:512 | +| 183 | /generatedfilesout:obj/Debug/net10.0//generated | +| 184 | /optimize- | +| 185 | /out:obj/Debug/net10.0/test.dll | +| 186 | /refout:obj/Debug/net10.0/refint/test.dll | +| 187 | /target:exe | +| 188 | /warnaserror- | +| 189 | /utf8output | +| 190 | /deterministic+ | +| 191 | /langversion:14.0 | +| 192 | /analyzerconfig:obj/Debug/net10.0/test.GeneratedMSBuildEditorConfig.editorconfig | +| 193 | /analyzerconfig:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_10_default.globalconfig | +| 194 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll | +| 195 | /analyzer:/usr/share/dotnet/sdk/10.0.100/Sdks/Microsoft.NET.Sdk/targets/../analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll | +| 196 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll | +| 197 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll | +| 198 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll | +| 199 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll | +| 200 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll | +| 201 | /analyzer:/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/10.0.0/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll | +| 202 | Program.cs | +| 203 | obj/Debug/net10.0/test.GlobalUsings.g.cs | +| 204 | obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | +| 205 | obj/Debug/net10.0/test.AssemblyInfo.cs | +| 206 | /warnaserror+:NU1605,SYSLIB0011 | diff --git a/csharp/ql/integration-tests/linux/compiler_args/global.json b/csharp/ql/integration-tests/linux/compiler_args/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/global.json +++ b/csharp/ql/integration-tests/linux/compiler_args/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/linux/compiler_args/test.csproj b/csharp/ql/integration-tests/linux/compiler_args/test.csproj index 8bb8e6387f9..dfc5eaaa032 100644 --- a/csharp/ql/integration-tests/linux/compiler_args/test.csproj +++ b/csharp/ql/integration-tests/linux/compiler_args/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json +++ b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj index 92e46ddaccf..a15a29bf12c 100644 --- a/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj +++ b/csharp/ql/integration-tests/linux/standalone_dependencies_non_utf8_filename/test.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj b/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj index ae797904315..149082b384c 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj +++ b/csharp/ql/integration-tests/posix/dotnet_test/dotnet_test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable false diff --git a/csharp/ql/integration-tests/posix/dotnet_test/global.json b/csharp/ql/integration-tests/posix/dotnet_test/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test/global.json +++ b/csharp/ql/integration-tests/posix/dotnet_test/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj b/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj index 45ccf93ee74..9237cbc44ef 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj +++ b/csharp/ql/integration-tests/posix/dotnet_test_mstest/dotnet_test_mstest.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json b/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json +++ b/csharp/ql/integration-tests/posix/dotnet_test_mstest/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/inherit-env-vars/global.json b/csharp/ql/integration-tests/posix/inherit-env-vars/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/inherit-env-vars/global.json +++ b/csharp/ql/integration-tests/posix/inherit-env-vars/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected index 05b3826c73c..619475882b5 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/Assemblies.expected @@ -1,167 +1,170 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/newtonsoft.json/12.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj index 58df1d80a86..88362e96131 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0;net6.0;netcoreapp3.1;netstandard2.0;net48 + net10.0;net6.0;netcoreapp3.1;netstandard2.0;net48 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected index 72f46cf9ac4..2be1117efc0 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_executing_runtime/Assemblies.expected @@ -18,6 +18,7 @@ | [...]/csharp/tools/[...]/Microsoft.NET.StringTools.dll | | [...]/csharp/tools/[...]/Microsoft.VisualBasic.Core.dll | | [...]/csharp/tools/[...]/Microsoft.VisualBasic.dll | +| [...]/csharp/tools/[...]/Microsoft.VisualStudio.SolutionPersistence.dll | | [...]/csharp/tools/[...]/Microsoft.Win32.Primitives.dll | | [...]/csharp/tools/[...]/Microsoft.Win32.Registry.dll | | [...]/csharp/tools/[...]/Mono.Posix.NETStandard.dll | @@ -85,6 +86,7 @@ | [...]/csharp/tools/[...]/System.IO.Pipes.dll | | [...]/csharp/tools/[...]/System.IO.UnmanagedMemoryStream.dll | | [...]/csharp/tools/[...]/System.IO.dll | +| [...]/csharp/tools/[...]/System.Linq.AsyncEnumerable.dll | | [...]/csharp/tools/[...]/System.Linq.Expressions.dll | | [...]/csharp/tools/[...]/System.Linq.Parallel.dll | | [...]/csharp/tools/[...]/System.Linq.Queryable.dll | @@ -101,6 +103,7 @@ | [...]/csharp/tools/[...]/System.Net.Quic.dll | | [...]/csharp/tools/[...]/System.Net.Requests.dll | | [...]/csharp/tools/[...]/System.Net.Security.dll | +| [...]/csharp/tools/[...]/System.Net.ServerSentEvents.dll | | [...]/csharp/tools/[...]/System.Net.ServicePoint.dll | | [...]/csharp/tools/[...]/System.Net.Sockets.dll | | [...]/csharp/tools/[...]/System.Net.WebClient.dll | @@ -169,6 +172,7 @@ | [...]/csharp/tools/[...]/System.Text.Encodings.Web.dll | | [...]/csharp/tools/[...]/System.Text.Json.dll | | [...]/csharp/tools/[...]/System.Text.RegularExpressions.dll | +| [...]/csharp/tools/[...]/System.Threading.AccessControl.dll | | [...]/csharp/tools/[...]/System.Threading.Channels.dll | | [...]/csharp/tools/[...]/System.Threading.Overlapped.dll | | [...]/csharp/tools/[...]/System.Threading.Tasks.Dataflow.dll | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected index 05b3826c73c..619475882b5 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/Assemblies.expected @@ -1,167 +1,170 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | | test-db/working/packages/newtonsoft.json/12.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj index 45639c4ecd2..998b6402127 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone1.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj index 40d116df47f..d5249ad8ef5 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_project/standalone2.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected index 1e4df659ded..7e3b8f6e453 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/Assemblies.expected @@ -1,164 +1,167 @@ -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj index 694035b3acd..dfb40caafcf 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_multi_target/net70.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected index 0934f8063db..10fa6873383 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/Assemblies.expected @@ -1 +1 @@ -| test-db/working/packages/newtonsoft.json/6.0.4/lib/net45/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | +| test-db/working/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj index 3beee773f83..58c469d39c7 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_no_framework/test_sdk.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 @@ -11,6 +11,6 @@ - + diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget with_space/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj index e16e4f4b6a6..6010c6c7f37 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error/proj/proj.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj index e16e4f4b6a6..6010c6c7f37 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_error_timeout/proj/proj.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj index e16e4f4b6a6..6010c6c7f37 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_config_fallback/proj/proj.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_no_sources/proj/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj index 47798ff95a4..faba700d110 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d1/test1.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj index 29604e2cbd8..92273963f8c 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/d2/test2.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 diff --git a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json +++ b/csharp/ql/integration-tests/posix/standalone_dependencies_nuget_versions/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj b/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj index 3c234e42302..2c22edadfc9 100644 --- a/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj +++ b/csharp/ql/integration-tests/posix/warn_as_error/WarnAsError.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable true diff --git a/csharp/ql/integration-tests/posix/warn_as_error/global.json b/csharp/ql/integration-tests/posix/warn_as_error/global.json index d488208a2a7..481e95ec7be 100644 --- a/csharp/ql/integration-tests/posix/warn_as_error/global.json +++ b/csharp/ql/integration-tests/posix/warn_as_error/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected b/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected index 0b4ea613c8e..90a2806afe5 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/Assemblies.expected @@ -1,213 +1,217 @@ | test-db/working/packages/avalara.avatax/23.11.0/lib/netstandard2.0/Avalara.AvaTax.RestClient.dll:0:0:0:0 | Avalara.AvaTax.RestClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=be94eb8ba37fd33c | | test-db/working/packages/microsoft.bcl.asyncinterfaces/8.0.0/lib/netstandard2.1/Microsoft.Bcl.AsyncInterfaces.dll:0:0:0:0 | Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Console.dll:0:0:0:0 | System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.IO.dll:0:0:0:0 | System.IO, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.netcore.app.ref/9.0.8/ref/net9.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Design.dll:0:0:0:0 | System.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | -| test-db/working/packages/microsoft.windowsdesktop.app.ref/9.0.8/ref/net9.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.CSharp.dll:0:0:0:0 | Microsoft.CSharp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Core.dll:0:0:0:0 | Microsoft.VisualBasic.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Primitives.dll:0:0:0:0 | Microsoft.Win32.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.dll:0:0:0:0 | Microsoft.Win32.Registry, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.AppContext.dll:0:0:0:0 | System.AppContext, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Buffers.dll:0:0:0:0 | System.Buffers, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Concurrent.dll:0:0:0:0 | System.Collections.Concurrent, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Immutable.dll:0:0:0:0 | System.Collections.Immutable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.NonGeneric.dll:0:0:0:0 | System.Collections.NonGeneric, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.Specialized.dll:0:0:0:0 | System.Collections.Specialized, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Collections.dll:0:0:0:0 | System.Collections, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Annotations.dll:0:0:0:0 | System.ComponentModel.Annotations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.DataAnnotations.dll:0:0:0:0 | System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.EventBasedAsync.dll:0:0:0:0 | System.ComponentModel.EventBasedAsync, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.Primitives.dll:0:0:0:0 | System.ComponentModel.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.TypeConverter.dll:0:0:0:0 | System.ComponentModel.TypeConverter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ComponentModel.dll:0:0:0:0 | System.ComponentModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Configuration.dll:0:0:0:0 | System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Console.dll:0:0:0:0 | System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Core.dll:0:0:0:0 | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.Common.dll:0:0:0:0 | System.Data.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.DataSetExtensions.dll:0:0:0:0 | System.Data.DataSetExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Data.dll:0:0:0:0 | System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Contracts.dll:0:0:0:0 | System.Diagnostics.Contracts, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Debug.dll:0:0:0:0 | System.Diagnostics.Debug, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.DiagnosticSource.dll:0:0:0:0 | System.Diagnostics.DiagnosticSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.FileVersionInfo.dll:0:0:0:0 | System.Diagnostics.FileVersionInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Process.dll:0:0:0:0 | System.Diagnostics.Process, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.StackTrace.dll:0:0:0:0 | System.Diagnostics.StackTrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TextWriterTraceListener.dll:0:0:0:0 | System.Diagnostics.TextWriterTraceListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tools.dll:0:0:0:0 | System.Diagnostics.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.TraceSource.dll:0:0:0:0 | System.Diagnostics.TraceSource, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Diagnostics.Tracing.dll:0:0:0:0 | System.Diagnostics.Tracing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Drawing.Primitives.dll:0:0:0:0 | System.Drawing.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Dynamic.Runtime.dll:0:0:0:0 | System.Dynamic.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Asn1.dll:0:0:0:0 | System.Formats.Asn1, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Formats.Tar.dll:0:0:0:0 | System.Formats.Tar, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Calendars.dll:0:0:0:0 | System.Globalization.Calendars, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.Extensions.dll:0:0:0:0 | System.Globalization.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Globalization.dll:0:0:0:0 | System.Globalization, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.Brotli.dll:0:0:0:0 | System.IO.Compression.Brotli, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.FileSystem.dll:0:0:0:0 | System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.ZipFile.dll:0:0:0:0 | System.IO.Compression.ZipFile, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Compression.dll:0:0:0:0 | System.IO.Compression, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.AccessControl.dll:0:0:0:0 | System.IO.FileSystem.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.DriveInfo.dll:0:0:0:0 | System.IO.FileSystem.DriveInfo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Primitives.dll:0:0:0:0 | System.IO.FileSystem.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.Watcher.dll:0:0:0:0 | System.IO.FileSystem.Watcher, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.FileSystem.dll:0:0:0:0 | System.IO.FileSystem, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.IsolatedStorage.dll:0:0:0:0 | System.IO.IsolatedStorage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.MemoryMappedFiles.dll:0:0:0:0 | System.IO.MemoryMappedFiles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipelines.dll:0:0:0:0 | System.IO.Pipelines, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.AccessControl.dll:0:0:0:0 | System.IO.Pipes.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.Pipes.dll:0:0:0:0 | System.IO.Pipes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.UnmanagedMemoryStream.dll:0:0:0:0 | System.IO.UnmanagedMemoryStream, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.IO.dll:0:0:0:0 | System.IO, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.AsyncEnumerable.dll:0:0:0:0 | System.Linq.AsyncEnumerable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Expressions.dll:0:0:0:0 | System.Linq.Expressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Parallel.dll:0:0:0:0 | System.Linq.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.Queryable.dll:0:0:0:0 | System.Linq.Queryable, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Linq.dll:0:0:0:0 | System.Linq, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Memory.dll:0:0:0:0 | System.Memory, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.Json.dll:0:0:0:0 | System.Net.Http.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Http.dll:0:0:0:0 | System.Net.Http, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.HttpListener.dll:0:0:0:0 | System.Net.HttpListener, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Mail.dll:0:0:0:0 | System.Net.Mail, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NameResolution.dll:0:0:0:0 | System.Net.NameResolution, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.NetworkInformation.dll:0:0:0:0 | System.Net.NetworkInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Ping.dll:0:0:0:0 | System.Net.Ping, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Primitives.dll:0:0:0:0 | System.Net.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Quic.dll:0:0:0:0 | System.Net.Quic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Requests.dll:0:0:0:0 | System.Net.Requests, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Security.dll:0:0:0:0 | System.Net.Security, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServerSentEvents.dll:0:0:0:0 | System.Net.ServerSentEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.ServicePoint.dll:0:0:0:0 | System.Net.ServicePoint, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.Sockets.dll:0:0:0:0 | System.Net.Sockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebClient.dll:0:0:0:0 | System.Net.WebClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebHeaderCollection.dll:0:0:0:0 | System.Net.WebHeaderCollection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebProxy.dll:0:0:0:0 | System.Net.WebProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.Client.dll:0:0:0:0 | System.Net.WebSockets.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.WebSockets.dll:0:0:0:0 | System.Net.WebSockets, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Net.dll:0:0:0:0 | System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.Vectors.dll:0:0:0:0 | System.Numerics.Vectors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Numerics.dll:0:0:0:0 | System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ObjectModel.dll:0:0:0:0 | System.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.DispatchProxy.dll:0:0:0:0 | System.Reflection.DispatchProxy, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.ILGeneration.dll:0:0:0:0 | System.Reflection.Emit.ILGeneration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.Lightweight.dll:0:0:0:0 | System.Reflection.Emit.Lightweight, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Emit.dll:0:0:0:0 | System.Reflection.Emit, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Extensions.dll:0:0:0:0 | System.Reflection.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Metadata.dll:0:0:0:0 | System.Reflection.Metadata, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.Primitives.dll:0:0:0:0 | System.Reflection.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.TypeExtensions.dll:0:0:0:0 | System.Reflection.TypeExtensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Reflection.dll:0:0:0:0 | System.Reflection, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Reader.dll:0:0:0:0 | System.Resources.Reader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.ResourceManager.dll:0:0:0:0 | System.Resources.ResourceManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Resources.Writer.dll:0:0:0:0 | System.Resources.Writer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.Unsafe.dll:0:0:0:0 | System.Runtime.CompilerServices.Unsafe, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.CompilerServices.VisualC.dll:0:0:0:0 | System.Runtime.CompilerServices.VisualC, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Extensions.dll:0:0:0:0 | System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Handles.dll:0:0:0:0 | System.Runtime.Handles, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.JavaScript.dll:0:0:0:0 | System.Runtime.InteropServices.JavaScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.RuntimeInformation.dll:0:0:0:0 | System.Runtime.InteropServices.RuntimeInformation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.InteropServices.dll:0:0:0:0 | System.Runtime.InteropServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Intrinsics.dll:0:0:0:0 | System.Runtime.Intrinsics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Loader.dll:0:0:0:0 | System.Runtime.Loader, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Numerics.dll:0:0:0:0 | System.Runtime.Numerics, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Formatters.dll:0:0:0:0 | System.Runtime.Serialization.Formatters, Version=8.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Json.dll:0:0:0:0 | System.Runtime.Serialization.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Primitives.dll:0:0:0:0 | System.Runtime.Serialization.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.Xml.dll:0:0:0:0 | System.Runtime.Serialization.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.Serialization.dll:0:0:0:0 | System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Runtime.dll:0:0:0:0 | System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.AccessControl.dll:0:0:0:0 | System.Security.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Claims.dll:0:0:0:0 | System.Security.Claims, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Algorithms.dll:0:0:0:0 | System.Security.Cryptography.Algorithms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Cng.dll:0:0:0:0 | System.Security.Cryptography.Cng, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Csp.dll:0:0:0:0 | System.Security.Cryptography.Csp, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Encoding.dll:0:0:0:0 | System.Security.Cryptography.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.OpenSsl.dll:0:0:0:0 | System.Security.Cryptography.OpenSsl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Primitives.dll:0:0:0:0 | System.Security.Cryptography.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.X509Certificates.dll:0:0:0:0 | System.Security.Cryptography.X509Certificates, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.dll:0:0:0:0 | System.Security.Cryptography, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.Windows.dll:0:0:0:0 | System.Security.Principal.Windows, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.Principal.dll:0:0:0:0 | System.Security.Principal, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.SecureString.dll:0:0:0:0 | System.Security.SecureString, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Security.dll:0:0:0:0 | System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceModel.Web.dll:0:0:0:0 | System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ServiceProcess.dll:0:0:0:0 | System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.CodePages.dll:0:0:0:0 | System.Text.Encoding.CodePages, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.Extensions.dll:0:0:0:0 | System.Text.Encoding.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encoding.dll:0:0:0:0 | System.Text.Encoding, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Encodings.Web.dll:0:0:0:0 | System.Text.Encodings.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.Json.dll:0:0:0:0 | System.Text.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Text.RegularExpressions.dll:0:0:0:0 | System.Text.RegularExpressions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.AccessControl.dll:0:0:0:0 | System.Threading.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Channels.dll:0:0:0:0 | System.Threading.Channels, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Overlapped.dll:0:0:0:0 | System.Threading.Overlapped, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Dataflow.dll:0:0:0:0 | System.Threading.Tasks.Dataflow, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Extensions.dll:0:0:0:0 | System.Threading.Tasks.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.Parallel.dll:0:0:0:0 | System.Threading.Tasks.Parallel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Tasks.dll:0:0:0:0 | System.Threading.Tasks, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Thread.dll:0:0:0:0 | System.Threading.Thread, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.ThreadPool.dll:0:0:0:0 | System.Threading.ThreadPool, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.Timer.dll:0:0:0:0 | System.Threading.Timer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Threading.dll:0:0:0:0 | System.Threading, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.Local.dll:0:0:0:0 | System.Transactions.Local, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Transactions.dll:0:0:0:0 | System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.ValueTuple.dll:0:0:0:0 | System.ValueTuple, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.HttpUtility.dll:0:0:0:0 | System.Web.HttpUtility, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Web.dll:0:0:0:0 | System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Windows.dll:0:0:0:0 | System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Linq.dll:0:0:0:0 | System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.ReaderWriter.dll:0:0:0:0 | System.Xml.ReaderWriter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.Serialization.dll:0:0:0:0 | System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XDocument.dll:0:0:0:0 | System.Xml.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.XDocument.dll:0:0:0:0 | System.Xml.XPath.XDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XPath.dll:0:0:0:0 | System.Xml.XPath, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlDocument.dll:0:0:0:0 | System.Xml.XmlDocument, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.XmlSerializer.dll:0:0:0:0 | System.Xml.XmlSerializer, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.Xml.dll:0:0:0:0 | System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/System.dll:0:0:0:0 | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/mscorlib.dll:0:0:0:0 | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.netcore.app.ref/10.0.0/ref/net10.0/netstandard.dll:0:0:0:0 | netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Accessibility.dll:0:0:0:0 | Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.Forms.dll:0:0:0:0 | Microsoft.VisualBasic.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.VisualBasic.dll:0:0:0:0 | Microsoft.VisualBasic, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.Registry.AccessControl.dll:0:0:0:0 | Microsoft.Win32.Registry.AccessControl, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/Microsoft.Win32.SystemEvents.dll:0:0:0:0 | Microsoft.Win32.SystemEvents, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationCore.dll:0:0:0:0 | PresentationCore, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero2.dll:0:0:0:0 | PresentationFramework.Aero2, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Aero.dll:0:0:0:0 | PresentationFramework.Aero, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.AeroLite.dll:0:0:0:0 | PresentationFramework.AeroLite, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Classic.dll:0:0:0:0 | PresentationFramework.Classic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Luna.dll:0:0:0:0 | PresentationFramework.Luna, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.Royale.dll:0:0:0:0 | PresentationFramework.Royale, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationFramework.dll:0:0:0:0 | PresentationFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/PresentationUI.dll:0:0:0:0 | PresentationUI, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/ReachFramework.dll:0:0:0:0 | ReachFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.CodeDom.dll:0:0:0:0 | System.CodeDom, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Configuration.ConfigurationManager.dll:0:0:0:0 | System.Configuration.ConfigurationManager, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Design.dll:0:0:0:0 | System.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.EventLog.dll:0:0:0:0 | System.Diagnostics.EventLog, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Diagnostics.PerformanceCounter.dll:0:0:0:0 | System.Diagnostics.PerformanceCounter, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.DirectoryServices.dll:0:0:0:0 | System.DirectoryServices, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Common.dll:0:0:0:0 | System.Drawing.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.Design.dll:0:0:0:0 | System.Drawing.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Drawing.dll:0:0:0:0 | System.Drawing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Formats.Nrbf.dll:0:0:0:0 | System.Formats.Nrbf, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.IO.Packaging.dll:0:0:0:0 | System.IO.Packaging, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Printing.dll:0:0:0:0 | System.Printing, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.Core.dll:0:0:0:0 | System.Private.Windows.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Private.Windows.GdiPlus.dll:0:0:0:0 | System.Private.Windows.GdiPlus, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Resources.Extensions.dll:0:0:0:0 | System.Resources.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Pkcs.dll:0:0:0:0 | System.Security.Cryptography.Pkcs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.ProtectedData.dll:0:0:0:0 | System.Security.Cryptography.ProtectedData, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Cryptography.Xml.dll:0:0:0:0 | System.Security.Cryptography.Xml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Security.Permissions.dll:0:0:0:0 | System.Security.Permissions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Controls.Ribbon.dll:0:0:0:0 | System.Windows.Controls.Ribbon, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Extensions.dll:0:0:0:0 | System.Windows.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.Editors.dll:0:0:0:0 | System.Windows.Forms.Design.Editors, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Design.dll:0:0:0:0 | System.Windows.Forms.Design, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.Primitives.dll:0:0:0:0 | System.Windows.Forms.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Forms.dll:0:0:0:0 | System.Windows.Forms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Input.Manipulations.dll:0:0:0:0 | System.Windows.Input.Manipulations, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Presentation.dll:0:0:0:0 | System.Windows.Presentation, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Windows.Primitives.dll:0:0:0:0 | System.Windows.Primitives, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/System.Xaml.dll:0:0:0:0 | System.Xaml, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClient.dll:0:0:0:0 | UIAutomationClient, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationClientSideProviders.dll:0:0:0:0 | UIAutomationClientSideProviders, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationProvider.dll:0:0:0:0 | UIAutomationProvider, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/UIAutomationTypes.dll:0:0:0:0 | UIAutomationTypes, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsBase.dll:0:0:0:0 | WindowsBase, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | +| test-db/working/packages/microsoft.windowsdesktop.app.ref/10.0.0/ref/net10.0/WindowsFormsIntegration.dll:0:0:0:0 | WindowsFormsIntegration, Version=10.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 | | test-db/working/packages/newtonsoft.json/12.0.1/lib/netstandard2.0/Newtonsoft.Json.dll:0:0:0:0 | Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed | diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/global.json b/csharp/ql/integration-tests/windows/standalone_dependencies/global.json index 4c6e2601f69..376af49c07f 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/global.json +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.304" + "version": "10.0.100" } } diff --git a/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj b/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj index 58df1d80a86..88362e96131 100644 --- a/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj +++ b/csharp/ql/integration-tests/windows/standalone_dependencies/standalone.csproj @@ -2,7 +2,7 @@ Exe - net9.0;net6.0;netcoreapp3.1;netstandard2.0;net48 + net10.0;net6.0;netcoreapp3.1;netstandard2.0;net48 diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 3e3a49681f9..59eb2a98cf0 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.4.3 + +No user-facing changes. + ## 5.4.2 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md b/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md new file mode 100644 index 00000000000..2b7f47fe98d --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-03-implicit-map-value-reads.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added implicit reads of `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. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md b/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md new file mode 100644 index 00000000000..832e6069ee0 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-09-bmn-default-dotnet.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* In `build mode: none`, .NET 10 is now used by default unless a specific .NET version is specified elsewhere. diff --git a/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md b/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md new file mode 100644 index 00000000000..d15a55a7eb4 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-11-net10-basic-support.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Basic extractor support for .NET 10 is now available. Extraction is supported for .NET 10 projects in both traced mode and `build mode: none`. However, code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. diff --git a/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md b/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md new file mode 100644 index 00000000000..9ca9b989812 --- /dev/null +++ b/csharp/ql/lib/change-notes/2025-12-11-slnx-support.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added autobuilder and `build-mode: none` support for `.slnx` solution files. diff --git a/csharp/ql/lib/change-notes/released/5.4.3.md b/csharp/ql/lib/change-notes/released/5.4.3.md new file mode 100644 index 00000000000..61270c2fe02 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.4.3.md @@ -0,0 +1,3 @@ +## 5.4.3 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 0318ae05ad8..dc2d3dec96c 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.2 +lastReleaseVersion: 5.4.3 diff --git a/csharp/ql/lib/ext/NHibernate.model.yml b/csharp/ql/lib/ext/NHibernate.model.yml new file mode 100644 index 00000000000..472374cfbc3 --- /dev/null +++ b/csharp/ql/lib/ext/NHibernate.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/csharp-all + extensible: sinkModel + data: + - ["NHibernate", "ISession", True, "CreateSQLQuery", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] + - ["NHibernate", "IStatelessSession", True, "CreateSQLQuery", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] + - ["NHibernate.Impl", "AbstractSessionImpl", True, "CreateSQLQuery", "(System.String)", "", "Argument[0]", "sql-injection", "manual"] \ No newline at end of file diff --git a/csharp/ql/lib/ext/empty.model.yml b/csharp/ql/lib/ext/empty.model.yml index 6b38b783cbe..09d848ea57d 100644 --- a/csharp/ql/lib/ext/empty.model.yml +++ b/csharp/ql/lib/ext/empty.model.yml @@ -11,6 +11,16 @@ extensions: extensible: sinkModel data: [] + - addsTo: + pack: codeql/csharp-all + extensible: barrierModel + data: [] + + - addsTo: + pack: codeql/csharp-all + extensible: barrierGuardModel + data: [] + - addsTo: pack: codeql/csharp-all extensible: summaryModel diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 1f20395f975..527e890f47b 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.3-dev +version: 5.4.4-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 44e7c3cf4ca..49a2271b27c 100644 --- a/csharp/ql/lib/semmle/code/csharp/Callable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll @@ -281,7 +281,6 @@ class Method extends Callable, Virtualizable, Attributable, @method { /** Holds if this method has a `params` parameter. */ predicate hasParams() { exists(this.getParamsType()) } - // Remove when `Callable.isOverridden()` is removed override predicate fromSource() { Callable.super.fromSource() and not this.isCompilerGenerated() @@ -317,6 +316,19 @@ class ExtensionMethod extends Method { override string getAPrimaryQlClass() { result = "ExtensionMethod" } } +/** + * An object initializer method. + * + * This is an extractor-synthesized method that executes the field + * initializers. Note that the AST nodes for the field initializers are nested + * directly under the class, and therefore this method has no body in the AST. + * On the other hand, this provides the unique enclosing callable for the field + * initializers and their control flow graph. + */ +class ObjectInitMethod extends Method { + ObjectInitMethod() { this.getName() = "" } +} + /** * A constructor, for example `public C() { }` on line 2 in * @@ -350,6 +362,9 @@ class Constructor extends Callable, Member, Attributable, @constructor { */ ConstructorInitializer getInitializer() { result = this.getChildExpr(-1) } + /** Gets the object initializer call of this constructor, if any. */ + MethodCall getObjectInitializerCall() { result = this.getChildExpr(-2) } + /** Holds if this constructor has an initializer. */ predicate hasInitializer() { exists(this.getInitializer()) } diff --git a/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll b/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll index be79c579513..aa834ef9103 100644 --- a/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll +++ b/csharp/ql/lib/semmle/code/csharp/ExprOrStmtParent.qll @@ -55,7 +55,8 @@ class TopLevelExprParent extends Element, @top_level_expr_parent { /** INTERNAL: Do not use. */ Expr getExpressionBody(Callable c) { result = c.getAChildExpr() and - not result = c.(Constructor).getInitializer() + not result = c.(Constructor).getInitializer() and + not result = c.(Constructor).getObjectInitializerCall() } /** INTERNAL: Do not use. */ @@ -211,6 +212,8 @@ private module Cached { enclosingBody(cfe, getBody(c)) or parent*(enclosingStart(cfe), c.(Constructor).getInitializer()) + or + parent*(cfe, c.(Constructor).getObjectInitializerCall()) } /** Holds if the enclosing statement of expression `e` is `s`. */ diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll index 908d1c2fb5a..bdf9e558539 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll @@ -3,6 +3,7 @@ */ import csharp +private import semmle.code.csharp.commons.Collections private import semmle.code.csharp.frameworks.Format private import semmle.code.csharp.frameworks.System private import semmle.code.csharp.frameworks.system.Text @@ -33,7 +34,7 @@ class ImplicitToStringExpr extends Expr { or p instanceof StringFormatItemParameter and not p.getType() = - any(ArrayType at | + any(ParamsCollectionType at | at.getElementType() instanceof ObjectType and this.getType().isImplicitlyConvertibleTo(at) ) diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index f61d7f9c3a7..414cfc2d50a 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -842,6 +842,40 @@ module Internal { e3 = any(NullCoalescingExpr nce | e1 = nce.getLeftOperand() and e2 = nce.getRightOperand()) } + predicate nullValueImplied(Expr e) { + nullValue(e) + or + exists(Expr e1 | nullValueImplied(e1) and nullValueImpliedUnary(e1, e)) + or + exists(Expr e1, Expr e2 | + nullValueImplied(e1) and nullValueImplied(e2) and nullValueImpliedBinary(e1, e2, e) + ) + or + e = + any(Ssa::Definition def | + forex(Ssa::Definition u | u = def.getAnUltimateDefinition() | nullDef(u)) + ).getARead() + } + + private predicate nullDef(Ssa::ExplicitDefinition def) { + nullValueImplied(def.getADefinition().getSource()) + } + + predicate nonNullValueImplied(Expr e) { + nonNullValue(e) + or + exists(Expr e1 | nonNullValueImplied(e1) and nonNullValueImpliedUnary(e1, e)) + or + e = + any(Ssa::Definition def | + forex(Ssa::Definition u | u = def.getAnUltimateDefinition() | nonNullDef(u)) + ).getARead() + } + + private predicate nonNullDef(Ssa::ExplicitDefinition def) { + nonNullValueImplied(def.getADefinition().getSource()) + } + /** A callable that always returns a non-`null` value. */ private class NonNullCallable extends Callable { NonNullCallable() { this = any(SystemObjectClass c).getGetTypeMethod() } @@ -936,154 +970,21 @@ module Internal { e = any(BinaryArithmeticOperation bao | result = bao.getAnOperand()) } - // The predicates in this module should be evaluated in the same stage as the CFG - // construction stage. This is to avoid recomputation of pre-basic-blocks and - // pre-SSA predicates - private module PreCfg { - private import semmle.code.csharp.controlflow.internal.PreBasicBlocks as PreBasicBlocks - private import semmle.code.csharp.controlflow.internal.PreSsa - - private predicate nullDef(PreSsa::Definition def) { - nullValueImplied(def.getDefinition().getSource()) - } - - private predicate nonNullDef(PreSsa::Definition def) { - nonNullValueImplied(def.getDefinition().getSource()) - } - - private predicate emptyDef(PreSsa::Definition def) { - emptyValue(def.getDefinition().getSource()) - } - - private predicate nonEmptyDef(PreSsa::Definition def) { - nonEmptyValue(def.getDefinition().getSource()) - } - - deprecated predicate isGuard(Expr e, GuardValue val) { - ( - e.getType() instanceof BoolType and - not e instanceof BoolLiteral and - not e instanceof SwitchCaseExpr and - not e instanceof PatternExpr and - exists(val.asBooleanValue()) - or - e instanceof DereferenceableExpr and - val.isNullness(_) - ) and - not e = any(ExprStmt es).getExpr() and - not e = any(LocalVariableDeclStmt s).getAVariableDeclExpr() - } - - cached - private module CachedWithCfg { - private import semmle.code.csharp.Caching - - private predicate firstReadSameVarUniquePredecessor( - PreSsa::Definition def, AssignableRead read - ) { - read = def.getAFirstRead() and - ( - not PreSsa::adjacentReadPairSameVar(_, read) - or - read = unique(AssignableRead read0 | PreSsa::adjacentReadPairSameVar(read0, read)) - ) - } - - cached - predicate nullValueImplied(Expr e) { - nullValue(e) - or - exists(Expr e1 | nullValueImplied(e1) and nullValueImpliedUnary(e1, e)) - or - exists(Expr e1, Expr e2 | - nullValueImplied(e1) and nullValueImplied(e2) and nullValueImpliedBinary(e1, e2, e) - ) - or - e = - any(PreSsa::Definition def | - forex(PreSsa::Definition u | u = def.getAnUltimateDefinition() | nullDef(u)) - ).getARead() - } - - cached - predicate nonNullValueImplied(Expr e) { - nonNullValue(e) - or - exists(Expr e1 | nonNullValueImplied(e1) and nonNullValueImpliedUnary(e1, e)) - or - e = - any(PreSsa::Definition def | - forex(PreSsa::Definition u | u = def.getAnUltimateDefinition() | nonNullDef(u)) - ).getARead() - } - - private predicate adjacentReadPairSameVarUniquePredecessor( - AssignableRead read1, AssignableRead read2 - ) { - PreSsa::adjacentReadPairSameVar(read1, read2) and - ( - read1 = read2 and - read1 = unique(AssignableRead other | PreSsa::adjacentReadPairSameVar(other, read2)) - or - read1 = - unique(AssignableRead other | - PreSsa::adjacentReadPairSameVar(other, read2) and other != read2 - ) - ) - } - - cached - predicate emptyValue(Expr e) { - e.(ArrayCreation).getALengthArgument().getValue().toInt() = 0 - or - e.(ArrayInitializer).hasNoElements() - or - exists(Expr mid | emptyValue(mid) | - mid = e.(AssignExpr).getRValue() - or - mid = e.(Cast).getExpr() - ) - or - exists(PreSsa::Definition def | emptyDef(def) | firstReadSameVarUniquePredecessor(def, e)) - or - exists(MethodCall mc | - mc.getTarget().getAnUltimateImplementee().getUnboundDeclaration() = - any(SystemCollectionsGenericICollectionInterface c).getClearMethod() and - adjacentReadPairSameVarUniquePredecessor(mc.getQualifier(), e) - ) - } - - cached - predicate nonEmptyValue(Expr e) { - forex(Expr length | length = e.(ArrayCreation).getALengthArgument() | - length.getValue().toInt() != 0 - ) - or - e.(ArrayInitializer).getNumberOfElements() > 0 - or - exists(Expr mid | nonEmptyValue(mid) | - mid = e.(AssignExpr).getRValue() - or - mid = e.(Cast).getExpr() - ) - or - exists(PreSsa::Definition def | nonEmptyDef(def) | - firstReadSameVarUniquePredecessor(def, e) - ) - or - exists(MethodCall mc | - mc.getTarget().getAnUltimateImplementee().getUnboundDeclaration() = - any(SystemCollectionsGenericICollectionInterface c).getAddMethod() and - adjacentReadPairSameVarUniquePredecessor(mc.getQualifier(), e) - ) - } - } - - import CachedWithCfg + deprecated predicate isGuard(Expr e, GuardValue val) { + ( + e.getType() instanceof BoolType and + not e instanceof BoolLiteral and + not e instanceof SwitchCaseExpr and + not e instanceof PatternExpr and + exists(val.asBooleanValue()) + or + e instanceof DereferenceableExpr and + val.isNullness(_) + ) and + not e = any(ExprStmt es).getExpr() and + not e = any(LocalVariableDeclStmt s).getAVariableDeclExpr() } - import PreCfg - private predicate interestingDescendantCandidate(Expr e) { guardControls(e, _, _) 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 5f62d6d21df..96fe5703090 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -6,10 +6,65 @@ import csharp private import codeql.controlflow.Cfg as CfgShared private import Completion -private import Splitting private import semmle.code.csharp.ExprOrStmtParent private import semmle.code.csharp.commons.Compilation +private module Initializers { + /** + * A non-static member with an initializer, for example a field `int Field = 0`. + */ + class InitializedInstanceMember extends Member { + private AssignExpr ae; + + InitializedInstanceMember() { + not this.isStatic() and + expr_parent_top_level(ae, _, this) and + not ae = any(Callable c).getExpressionBody() + } + + /** Gets the initializer expression. */ + AssignExpr getInitializer() { result = ae } + } + + /** + * Holds if `obinit` is an object initializer method that performs the initialization + * of a member via assignment `init`. + */ + predicate obinitInitializes(ObjectInitMethod obinit, AssignExpr init) { + exists(InitializedInstanceMember m | + obinit.getDeclaringType().getAMember() = m and + init = m.getInitializer() + ) + } + + /** + * Gets the `i`th member initializer expression for object initializer method `obinit` + * in compilation `comp`. + */ + AssignExpr initializedInstanceMemberOrder(ObjectInitMethod obinit, CompilationExt comp, int i) { + obinitInitializes(obinit, result) and + result = + rank[i + 1](AssignExpr ae0, Location l | + obinitInitializes(obinit, ae0) and + l = ae0.getLocation() and + getCompilation(l.getFile()) = comp + | + ae0 order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() + ) + } + + /** + * Gets the last member initializer expression for object initializer method `obinit` + * in compilation `comp`. + */ + AssignExpr lastInitializer(ObjectInitMethod obinit, CompilationExt comp) { + exists(int i | + result = initializedInstanceMemberOrder(obinit, comp, i) and + not exists(initializedInstanceMemberOrder(obinit, comp, i + 1)) + ) + } +} + /** An element that defines a new CFG scope. */ class CfgScope extends Element, @top_level_exprorstmt_parent { CfgScope() { @@ -19,7 +74,7 @@ class CfgScope extends Element, @top_level_exprorstmt_parent { any(Callable c | c.(Constructor).hasInitializer() or - InitializerSplitting::constructorInitializes(c, _) + Initializers::obinitInitializes(c, _) or c.hasBody() ) @@ -146,14 +201,16 @@ private predicate expr_parent_top_level_adjusted2( predicate scopeFirst(CfgScope scope, AstNode first) { scope = any(Callable c | - if exists(c.(Constructor).getInitializer()) - then first(c.(Constructor).getInitializer(), first) + if exists(c.(Constructor).getObjectInitializerCall()) + then first(c.(Constructor).getObjectInitializerCall(), first) else - if InitializerSplitting::constructorInitializes(c, _) - then first(InitializerSplitting::constructorInitializeOrder(c, _, 0), first) + if exists(c.(Constructor).getInitializer()) + then first(c.(Constructor).getInitializer(), first) else first(c.getBody(), first) ) or + first(Initializers::initializedInstanceMemberOrder(scope, _, 0), first) + or expr_parent_top_level_adjusted2(any(Expr e | first(e, first)), _, scope) and not scope instanceof Callable } @@ -165,14 +222,40 @@ predicate scopeLast(CfgScope scope, AstNode last, Completion c) { last(callable.getBody(), last, c) and not c instanceof GotoCompletion or - last(InitializerSplitting::lastConstructorInitializer(scope, _), last, c) and + last(callable.(Constructor).getInitializer(), last, c) and + not callable.hasBody() + or + // This is only relevant in the context of compilation errors, since + // normally the existence of an object initializer call implies the + // existence of an initializer. + last(callable.(Constructor).getObjectInitializerCall(), last, c) and + not callable.(Constructor).hasInitializer() and not callable.hasBody() ) or + last(Initializers::lastInitializer(scope, _), last, c) + or expr_parent_top_level_adjusted2(any(Expr e | last(e, last, c)), _, scope) and not scope instanceof Callable } +private class ObjectInitTree extends ControlFlowTree instanceof ObjectInitMethod { + final override predicate propagatesAbnormal(AstNode child) { none() } + + final override predicate first(AstNode first) { none() } + + final override predicate last(AstNode last, Completion c) { none() } + + final override predicate succ(AstNode pred, AstNode succ, Completion c) { + exists(CompilationExt comp, int i | + // Flow from one member initializer to the next + last(Initializers::initializedInstanceMemberOrder(this, comp, i), pred, c) and + c instanceof NormalCompletion and + first(Initializers::initializedInstanceMemberOrder(this, comp, i + 1), succ) + ) + } +} + private class ConstructorTree extends ControlFlowTree instanceof Constructor { final override predicate propagatesAbnormal(AstNode child) { none() } @@ -187,17 +270,29 @@ private class ConstructorTree extends ControlFlowTree instanceof Constructor { comp = getCompilation(result.getFile()) } + pragma[noinline] + private MethodCall getObjectInitializerCall(CompilationExt comp) { + result = super.getObjectInitializerCall() and + comp = getCompilation(result.getFile()) + } + + pragma[noinline] + private ConstructorInitializer getInitializer(CompilationExt comp) { + result = super.getInitializer() and + comp = getCompilation(result.getFile()) + } + final override predicate succ(AstNode pred, AstNode succ, Completion c) { - exists(CompilationExt comp, int i, AssignExpr ae | - ae = InitializerSplitting::constructorInitializeOrder(this, comp, i) and - last(ae, pred, c) and + exists(CompilationExt comp | + last(this.getObjectInitializerCall(comp), pred, c) and c instanceof NormalCompletion | - // Flow from one member initializer to the next - first(InitializerSplitting::constructorInitializeOrder(this, comp, i + 1), succ) + first(this.getInitializer(comp), succ) or - // Flow from last member initializer to constructor body - ae = InitializerSplitting::lastConstructorInitializer(this, comp) and + // This is only relevant in the context of compilation errors, since + // normally the existence of an object initializer call implies the + // existence of an initializer. + not exists(this.getInitializer(comp)) and first(this.getBody(comp), succ) ) } @@ -837,13 +932,7 @@ module Expressions { last(this, pred, c) and con = super.getConstructor() and comp = getCompilation(this.getFile()) and - c instanceof NormalCompletion - | - // Flow from constructor initializer to first member initializer - first(InitializerSplitting::constructorInitializeOrder(con, comp, 0), succ) - or - // Flow from constructor initializer to first element of constructor body - not exists(InitializerSplitting::constructorInitializeOrder(con, comp, _)) and + c instanceof NormalCompletion and first(con.getBody(comp), succ) ) } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll deleted file mode 100644 index 4921e692623..00000000000 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/PreSsa.qll +++ /dev/null @@ -1,221 +0,0 @@ -import csharp - -/** - * Provides an SSA implementation based on "pre-basic-blocks", restricted - * to local scope variables and fields/properties that behave like local - * scope variables. - */ -module PreSsa { - private import AssignableDefinitions - private import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl - private import semmle.code.csharp.controlflow.internal.PreBasicBlocks as PreBasicBlocks - private import codeql.ssa.Ssa as SsaImplCommon - - private predicate definitionAt( - AssignableDefinition def, PreBasicBlocks::PreBasicBlock bb, int i, SsaInput::SourceVariable v - ) { - bb.getNode(i) = def.getExpr() and - v = def.getTarget() and - // In cases like `(x, x) = (0, 1)`, we discard the first (dead) definition of `x` - not exists(TupleAssignmentDefinition first, TupleAssignmentDefinition second | first = def | - second.getAssignment() = first.getAssignment() and - second.getEvaluationOrder() > first.getEvaluationOrder() and - second.getTarget() = v - ) - or - def.(ImplicitParameterDefinition).getParameter() = v and - exists(Callable c | v = c.getAParameter() | - scopeFirst(c, bb) and - i = -1 - ) - } - - predicate implicitEntryDef( - Callable c, PreBasicBlocks::PreBasicBlock bb, SsaInput::SourceVariable v - ) { - c = v.getACallable() and - scopeFirst(c, bb) and - ( - not v instanceof LocalScopeVariable - or - v.(SimpleLocalScopeVariable).isReadonlyCapturedBy(c) - ) - } - - /** Holds if `a` is assigned in callable `c`. */ - pragma[nomagic] - private predicate assignableDefinition(Assignable a, Callable c) { - exists(AssignableDefinition def | - def.getTarget() = a and - c = def.getEnclosingCallable() - | - not c instanceof Constructor or - a instanceof LocalScopeVariable - ) - } - - pragma[nomagic] - private predicate assignableUniqueWriter(Assignable a, Callable c) { - c = unique(Callable c0 | assignableDefinition(a, c0) | c0) - } - - /** Holds if `a` is accessed in callable `c`. */ - pragma[nomagic] - private predicate assignableAccess(Assignable a, Callable c) { - exists(AssignableAccess aa | aa.getTarget() = a | c = aa.getEnclosingCallable()) - } - - /** - * A local scope variable that is amenable to SSA analysis. - * - * This is either a local variable that is not captured, or one - * where all writes happen in the defining callable. - */ - class SimpleLocalScopeVariable extends LocalScopeVariable { - SimpleLocalScopeVariable() { assignableUniqueWriter(this, this.getCallable()) } - - /** Holds if this local scope variable is read-only captured by `c`. */ - predicate isReadonlyCapturedBy(Callable c) { - assignableAccess(this, c) and - c != this.getCallable() - } - } - - module SsaInput implements SsaImplCommon::InputSig { - private import semmle.code.csharp.Caching - - private class ExitBasicBlock extends PreBasicBlocks::PreBasicBlock { - ExitBasicBlock() { scopeLast(_, this.getLastNode(), _) } - } - - pragma[noinline] - private predicate assignableNoComplexQualifiers(Assignable a) { - forall(QualifiableExpr qe | qe.(AssignableAccess).getTarget() = a | qe.targetIsThisInstance()) - } - - /** - * A simple assignable. Either a local scope variable or a field/property - * that behaves like a local scope variable. - */ - class SourceVariable extends Assignable { - private Callable c; - - SourceVariable() { - assignableAccess(this, c) and - ( - this instanceof SimpleLocalScopeVariable - or - ( - this = any(Field f | not f.isVolatile()) - or - this = any(TrivialProperty tp | not tp.isOverridableOrImplementable()) - ) and - ( - not assignableDefinition(this, _) - or - assignableUniqueWriter(this, c) - ) and - assignableNoComplexQualifiers(this) - ) - } - - /** Gets a callable in which this simple assignable can be analyzed. */ - Callable getACallable() { result = c } - } - - predicate variableWrite( - PreBasicBlocks::PreBasicBlock bb, int i, SourceVariable v, boolean certain - ) { - Stages::ControlFlowStage::forceCachingInSameStage() and - exists(AssignableDefinition def | - definitionAt(def, bb, i, v) and - if def.getTargetAccess().isRefArgument() then certain = false else certain = true - ) - or - implicitEntryDef(_, bb, v) and - i = -1 and - certain = true - } - - predicate variableRead( - PreBasicBlocks::PreBasicBlock bb, int i, SourceVariable v, boolean certain - ) { - exists(AssignableRead read | - read = bb.getNode(i) and - read.getTarget() = v and - certain = true - ) - or - v = - any(LocalScopeVariable lsv | - lsv.getCallable() = bb.(ExitBasicBlock).getEnclosingCallable() and - i = bb.length() and - (lsv.isRef() or v.(Parameter).isOut()) and - certain = false - ) - } - } - - private module SsaImpl = SsaImplCommon::Make; - - class Definition extends SsaImpl::Definition { - final AssignableRead getARead() { - exists(PreBasicBlocks::PreBasicBlock bb, int i | - SsaImpl::ssaDefReachesRead(_, this, bb, i) and - result = bb.getNode(i) - ) - } - - final AssignableDefinition getDefinition() { - exists(PreBasicBlocks::PreBasicBlock bb, int i, SsaInput::SourceVariable v | - this.definesAt(v, bb, i) and - definitionAt(result, bb, i, v) - ) - } - - final AssignableRead getAFirstRead() { - exists(PreBasicBlocks::PreBasicBlock bb, int i | - SsaImpl::firstUse(this, bb, i, true) and - result = bb.getNode(i) - ) - } - - private Definition getAPhiInputOrPriorDefinition() { - result = this.(PhiNode).getAnInput() or - SsaImpl::uncertainWriteDefinitionInput(this, result) - } - - final Definition getAnUltimateDefinition() { - result = this.getAPhiInputOrPriorDefinition*() and - not result instanceof PhiNode - } - - final predicate isLiveAtEndOfBlock(PreBasicBlocks::PreBasicBlock bb) { - SsaImpl::ssaDefReachesEndOfBlock(bb, this, _) - } - - override Location getLocation() { - result = this.getDefinition().getLocation() - or - exists(Callable c, PreBasicBlocks::PreBasicBlock bb, SsaInput::SourceVariable v | - this.definesAt(v, bb, -1) and - implicitEntryDef(c, bb, v) and - result = c.getLocation() - ) - } - } - - class PhiNode extends SsaImpl::PhiNode, Definition { - final override Location getLocation() { result = this.getBasicBlock().getLocation() } - - final Definition getAnInput() { SsaImpl::phiHasInputFromBlock(this, result, _) } - } - - predicate adjacentReadPairSameVar(AssignableRead read1, AssignableRead read2) { - exists(PreBasicBlocks::PreBasicBlock bb1, int i1, PreBasicBlocks::PreBasicBlock bb2, int i2 | - read1 = bb1.getNode(i1) and - SsaImpl::adjacentUseUse(bb1, i1, bb2, i2, _, true) and - read2 = bb2.getNode(i2) - ) - } -} diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll index 63d2c181da4..55b75ed31a7 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/Splitting.qll @@ -9,27 +9,16 @@ private import Completion as Comp private import Comp private import ControlFlowGraphImpl private import semmle.code.csharp.controlflow.ControlFlowGraph::ControlFlow as Cfg -private import semmle.code.csharp.controlflow.internal.PreSsa cached private module Cached { private import semmle.code.csharp.Caching cached - newtype TBooleanSplitSubKind = - TSsaBooleanSplitSubKind(PreSsa::Definition def) { - Stages::ControlFlowStage::forceCachingInSameStage() - } + newtype TSplitKind = TConditionalCompletionSplitKind() cached - newtype TSplitKind = - TInitializerSplitKind() or - TConditionalCompletionSplitKind() - - cached - newtype TSplit = - TInitializerSplit(Constructor c) { InitializerSplitting::constructorInitializes(c, _) } or - TConditionalCompletionSplit(ConditionalCompletion c) + newtype TSplit = TConditionalCompletionSplit(ConditionalCompletion c) } import Cached @@ -43,186 +32,6 @@ class Split extends TSplit { string toString() { none() } } -module InitializerSplitting { - private import semmle.code.csharp.ExprOrStmtParent - - /** - * A non-static member with an initializer, for example a field `int Field = 0`. - */ - class InitializedInstanceMember extends Member { - InitializedInstanceMember() { - exists(AssignExpr ae | - not this.isStatic() and - expr_parent_top_level(ae, _, this) and - not ae = any(Callable c).getExpressionBody() - ) - } - - /** Gets the initializer expression. */ - AssignExpr getInitializer() { expr_parent_top_level(result, _, this) } - - /** - * Gets a control flow element that is a syntactic descendant of the - * initializer expression. - */ - AstNode getAnInitializerDescendant() { - result = this.getInitializer() - or - result = this.getAnInitializerDescendant().getAChild() - } - } - - /** - * Holds if `c` is a non-static constructor that performs the initialization - * of a member via assignment `init`. - */ - predicate constructorInitializes(InstanceConstructor c, AssignExpr init) { - exists(InitializedInstanceMember m | - c.isUnboundDeclaration() and - c.getDeclaringType().getAMember() = m and - not c.getInitializer().isThis() and - init = m.getInitializer() - ) - } - - /** - * Gets the `i`th member initializer expression for non-static constructor `c` - * in compilation `comp`. - */ - AssignExpr constructorInitializeOrder(Constructor c, CompilationExt comp, int i) { - constructorInitializes(c, result) and - result = - rank[i + 1](AssignExpr ae0, Location l | - constructorInitializes(c, ae0) and - l = ae0.getLocation() and - getCompilation(l.getFile()) = comp - | - ae0 order by l.getStartLine(), l.getStartColumn(), l.getFile().getAbsolutePath() - ) - } - - /** - * Gets the last member initializer expression for non-static constructor `c` - * in compilation `comp`. - */ - AssignExpr lastConstructorInitializer(Constructor c, CompilationExt comp) { - exists(int i | - result = constructorInitializeOrder(c, comp, i) and - not exists(constructorInitializeOrder(c, comp, i + 1)) - ) - } - - /** - * A split for non-static member initializers belonging to a given non-static - * constructor. For example, in - * - * ```csharp - * class C - * { - * int Field1 = 0; - * int Field2 = Field1 + 1; - * int Field3; - * - * public C() - * { - * Field3 = 2; - * } - * - * public C(int i) - * { - * Field3 = 3; - * } - * } - * ``` - * - * the initializer expressions `Field1 = 0` and `Field2 = Field1 + 1` are split - * on the two constructors. This is in order to generate CFGs for the two - * constructors that mimic - * - * ```csharp - * public C() - * { - * Field1 = 0; - * Field2 = Field1 + 1; - * Field3 = 2; - * } - * ``` - * - * and - * - * ```csharp - * public C() - * { - * Field1 = 0; - * Field2 = Field1 + 1; - * Field3 = 3; - * } - * ``` - * - * respectively. - */ - private class InitializerSplit extends Split, TInitializerSplit { - private Constructor c; - - InitializerSplit() { this = TInitializerSplit(c) } - - /** Gets the constructor. */ - Constructor getConstructor() { result = c } - - override string toString() { result = "" } - } - - private class InitializerSplitKind extends SplitKind, TInitializerSplitKind { - override int getListOrder() { result = 0 } - - override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) } - - override string toString() { result = "Initializer" } - } - - int getNextListOrder() { result = 1 } - - private class InitializerSplitImpl extends SplitImpl instanceof InitializerSplit { - override InitializerSplitKind getKind() { any() } - - override predicate hasEntry(AstNode pred, AstNode succ, Completion c) { - exists(ConstructorInitializer ci | - last(ci, pred, c) and - succ(pred, succ, c) and - succ = any(InitializedInstanceMember m).getAnInitializerDescendant() and - super.getConstructor() = ci.getConstructor() - ) - } - - override predicate hasEntryScope(CfgScope scope, AstNode first) { - scopeFirst(scope, first) and - scope = super.getConstructor() and - first = any(InitializedInstanceMember m).getAnInitializerDescendant() - } - - override predicate hasExit(AstNode pred, AstNode succ, Completion c) { - this.appliesTo(pred) and - succ(pred, succ, c) and - not succ = any(InitializedInstanceMember m).getAnInitializerDescendant() and - succ.(ControlFlowElement).getEnclosingCallable() = super.getConstructor() - } - - override predicate hasExitScope(CfgScope scope, AstNode last, Completion c) { - this.appliesTo(last) and - scopeLast(scope, last, c) and - scope = super.getConstructor() - } - - override predicate hasSuccessor(AstNode pred, AstNode succ, Completion c) { - this.appliesSucc(pred, succ, c) and - succ = - any(InitializedInstanceMember m | - constructorInitializes(super.getConstructor(), m.getInitializer()) - ).getAnInitializerDescendant() - } - } -} - module ConditionalCompletionSplitting { /** * A split for conditional completions. For example, in @@ -249,7 +58,7 @@ module ConditionalCompletionSplitting { } private class ConditionalCompletionSplitKind_ extends SplitKind, TConditionalCompletionSplitKind { - override int getListOrder() { result = InitializerSplitting::getNextListOrder() } + override int getListOrder() { result = 0 } override predicate isEnabled(AstNode cfe) { this.appliesTo(cfe) } @@ -312,6 +121,4 @@ module ConditionalCompletionSplitting { ) } } - - int getNextListOrder() { result = InitializerSplitting::getNextListOrder() + 1 } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll index 747cf790d91..a994873274a 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/BaseSSA.qll @@ -43,10 +43,47 @@ module BaseSsa { ) } - private module SsaInput implements SsaImplCommon::InputSig { - private import semmle.code.csharp.controlflow.internal.PreSsa + /** Holds if `a` is assigned in callable `c`. */ + pragma[nomagic] + private predicate assignableDefinition(Assignable a, Callable c) { + exists(AssignableDefinition def | + def.getTarget() = a and + c = def.getEnclosingCallable() + | + not c instanceof Constructor or + a instanceof LocalScopeVariable + ) + } - class SourceVariable = PreSsa::SimpleLocalScopeVariable; + pragma[nomagic] + private predicate assignableUniqueWriter(Assignable a, Callable c) { + c = unique(Callable c0 | assignableDefinition(a, c0) | c0) + } + + /** Holds if `a` is accessed in callable `c`. */ + pragma[nomagic] + private predicate assignableAccess(Assignable a, Callable c) { + exists(AssignableAccess aa | aa.getTarget() = a | c = aa.getEnclosingCallable()) + } + + /** + * A local scope variable that is amenable to SSA analysis. + * + * This is either a local variable that is not captured, or one + * where all writes happen in the defining callable. + */ + class SimpleLocalScopeVariable extends LocalScopeVariable { + SimpleLocalScopeVariable() { assignableUniqueWriter(this, this.getCallable()) } + + /** Holds if this local scope variable is read-only captured by `c`. */ + predicate isReadonlyCapturedBy(Callable c) { + assignableAccess(this, c) and + c != this.getCallable() + } + } + + private module SsaInput implements SsaImplCommon::InputSig { + class SourceVariable = SimpleLocalScopeVariable; predicate variableWrite(ControlFlow::BasicBlock bb, int i, SourceVariable v, boolean certain) { exists(AssignableDefinition def | 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 9ba96154820..c7d34a38979 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -16,7 +16,7 @@ private import semmle.code.csharp.internal.Location */ Callable getCallableForDataFlow(Callable c) { result = c.getUnboundDeclaration() and - result.hasBody() and + (result.hasBody() or result instanceof ObjectInitMethod) and result.getFile().fromSource() } @@ -27,6 +27,12 @@ newtype TReturnKind = private predicate hasMultipleSourceLocations(Callable c) { strictcount(getASourceLocation(c)) > 1 } +private predicate objectInitEntry(ObjectInitMethod m, ControlFlowElement first) { + exists(ControlFlow::Nodes::EntryNode en | + en.getCallable() = m and first.getControlFlowNode() = en.getASuccessor() + ) +} + private module NearestBodyLocationInput implements NearestLocationInputSig { class C = ControlFlowElement; @@ -34,7 +40,7 @@ private module NearestBodyLocationInput implements NearestLocationInputSig { exists(Callable c | hasMultipleSourceLocations(c) and l1 = getASourceLocation(c) and - body = c.getBody() and + (body = c.getBody() or objectInitEntry(c, body)) and l2 = body.getLocation() ) } @@ -207,7 +213,9 @@ class DataFlowCallable extends TDataFlowCallable { private ControlFlow::Nodes::ElementNode getAMultiBodyEntryNode(ControlFlow::BasicBlock bb, int i) { this.isMultiBodied() and exists(ControlFlowElement body, Location l | - body = this.asCallable(l).getBody() and + body = this.asCallable(l).getBody() or + objectInitEntry(this.asCallable(l), body) + | NearestLocation::nearestLocation(body, l, _) and result = body.getAControlFlowEntryNode() ) and 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 4f7f0141da2..a05651b4c64 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -178,12 +178,24 @@ private module ThisFlow { cfn = n.(InstanceParameterAccessPreNode).getUnderlyingControlFlowNode() } + private predicate primaryConstructorThisAccess(Node n, BasicBlock bb, int ppos) { + exists(Parameter p | + n.(PrimaryConstructorThisAccessPreNode).getParameter() = p and + bb.getCallable() = p.getCallable() and + ppos = p.getPosition() + ) + } + + private int numberOfPrimaryConstructorParameters(BasicBlock bb) { + result = strictcount(int primaryParamPos | primaryConstructorThisAccess(_, bb, primaryParamPos)) + } + private predicate thisAccess(Node n, BasicBlock bb, int i) { thisAccess(n, bb.getNode(i)) or - exists(Parameter p | n.(PrimaryConstructorThisAccessPreNode).getParameter() = p | - bb.getCallable() = p.getCallable() and - i = p.getPosition() + 1 + exists(int ppos | + primaryConstructorThisAccess(n, bb, ppos) and + i = ppos - numberOfPrimaryConstructorParameters(bb) ) or exists(DataFlowCallable c, ControlFlow::BasicBlocks::EntryBlock entry | @@ -195,8 +207,11 @@ private module ThisFlow { // entry definition. In case `c` doesn't have multiple bodies, the line below // is simply the same as `bb = entry`, because `entry.getFirstNode().getASuccessor()` // will be in the entry block. - bb = succ.getBasicBlock() and - i = -1 + bb = succ.getBasicBlock() + | + i = -1 - numberOfPrimaryConstructorParameters(bb) + or + not exists(numberOfPrimaryConstructorParameters(bb)) and i = -1 ) ) } @@ -3035,8 +3050,11 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves exists(AssignableDefinition def | def.getTargetAccess() = fa and nodeFrom.asExpr() = def.getSource() and - nodeTo = TFlowInsensitiveFieldNode(f) and + nodeTo = TFlowInsensitiveFieldNode(f) + | nodeFrom.getEnclosingCallable() instanceof Constructor + or + nodeFrom.getEnclosingCallable() instanceof ObjectInitMethod ) or nodeFrom = TFlowInsensitiveFieldNode(f) and @@ -3070,6 +3088,9 @@ predicate allowParameterReturnInSelf(ParameterNode p) { or VariableCapture::Flow::heuristicAllowInstanceParameterReturnInSelf(p.(DelegateSelfReferenceNode) .getCallable()) + or + // Allow field initializers to access Primary Constructor parameters + p.getEnclosingCallable() instanceof ObjectInitMethod } /** An approximated `Content`. */ 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 87b28b76e99..75d14034e00 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -88,7 +88,7 @@ */ import csharp -import ExternalFlowExtensions +private import ExternalFlowExtensions::Extensions as Extensions private import DataFlowDispatch private import DataFlowPrivate private import DataFlowPublic @@ -101,100 +101,13 @@ private import semmle.code.csharp.dispatch.OverridableCallable private import semmle.code.csharp.frameworks.System private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax private import codeql.mad.ModelValidation as SharedModelVal +private import codeql.mad.static.ModelsAsData as SharedMaD -/** - * Holds if the given extension tuple `madId` should pretty-print as `model`. - * - * This predicate should only be used in tests. - */ -predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance - | - sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, madId) and - model = - "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " - + ext + "; " + output + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance - | - sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, madId) and - model = - "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + kind + "; " + provenance - ) - or - exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance - | - summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance, - madId) and - model = - "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + - "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance - ) -} +private module MadInput implements SharedMaD::InputSig { } -private predicate relevantNamespace(string namespace) { - sourceModel(namespace, _, _, _, _, _, _, _, _, _) or - sinkModel(namespace, _, _, _, _, _, _, _, _, _) or - summaryModel(namespace, _, _, _, _, _, _, _, _, _, _) -} +private module MaD = SharedMaD::ModelsAsData; -private predicate namespaceLink(string shortns, string longns) { - relevantNamespace(shortns) and - relevantNamespace(longns) and - longns.prefix(longns.indexOf(".")) = shortns -} - -private predicate canonicalNamespace(string namespace) { - relevantNamespace(namespace) and not namespaceLink(_, namespace) -} - -private predicate canonicalNamespaceLink(string namespace, string subns) { - canonicalNamespace(namespace) and - (subns = namespace or namespaceLink(namespace, subns)) -} - -/** - * Holds if MaD framework coverage of `namespace` is `n` api endpoints of the - * kind `(kind, part)`, and `namespaces` is the number of subnamespaces of - * `namespace` which have MaD framework coverage (including `namespace` - * itself). - */ -predicate modelCoverage(string namespace, int namespaces, string kind, string part, int n) { - namespaces = strictcount(string subns | canonicalNamespaceLink(namespace, subns)) and - ( - part = "source" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and - sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, _) - ) - or - part = "sink" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance | - canonicalNamespaceLink(namespace, subns) and - sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, _) - ) - or - part = "summary" and - n = - strictcount(string subns, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalNamespaceLink(namespace, subns) and - summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, _) - ) - ) -} +import MaD /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { @@ -258,7 +171,7 @@ module ModelValidation { predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } - predicate neutralKind(string kind) { neutralModel(_, _, _, _, kind, _) } + predicate neutralKind(string kind) { Extensions::neutralModel(_, _, _, _, kind, _) } } private module KindVal = SharedModelVal::KindValidation; @@ -275,7 +188,7 @@ module ModelValidation { summaryModel(namespace, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or - neutralModel(namespace, type, name, signature, _, provenance) and + Extensions::neutralModel(namespace, type, name, signature, _, provenance) and ext = "" and pred = "neutral" | @@ -318,7 +231,7 @@ private predicate elementSpec( or summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) or - neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = true + Extensions::neutralModel(namespace, type, name, signature, _, _) and ext = "" and subtypes = true } private predicate elementSpec( @@ -590,19 +503,17 @@ private predicate interpretSummary( UnboundCallable c, string input, string output, string kind, string provenance, string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance, - madId) and - model = "MaD:" + madId.toString() and + model) and c = interpretElement(namespace, type, subtypes, name, signature, ext) ) } predicate interpretNeutral(UnboundCallable c, string kind, string provenance) { exists(string namespace, string type, string name, string signature | - neutralModel(namespace, type, name, signature, kind, provenance) and + Extensions::neutralModel(namespace, type, name, signature, kind, provenance) and c = interpretElement(namespace, type, true, name, signature, "") ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll index f761a0a9f5c..3461f0a5186 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -2,6 +2,8 @@ * This module provides extensible predicates for defining MaD models. */ +private import codeql.mad.static.ModelsAsData as SharedMaD + /** * Holds if a source model exists for the given parameters. */ @@ -18,6 +20,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ @@ -32,3 +50,9 @@ extensible predicate summaryModel( extensible predicate neutralModel( string namespace, string type, string name, string signature, string kind, string provenance ); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions + + predicate namespaceGrouping(string group, string namespace) { none() } +} 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 3ee16f21489..56278b9ef95 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -213,11 +213,9 @@ module SourceSinkInterpretationInput implements Element e, string output, string kind, Public::Provenance provenance, string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } @@ -226,15 +224,26 @@ module SourceSinkInterpretationInput implements Element e, string input, string kind, Public::Provenance provenance, string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, model) and e = interpretElement(namespace, type, subtypes, name, signature, ext) ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + class SourceOrSinkElement = Element; private newtype TInterpretNode = diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 70fda2b1296..277abd1d26e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -5,9 +5,9 @@ import csharp private import codeql.ssa.Ssa as SsaImplCommon private import AssignableDefinitions -private import semmle.code.csharp.controlflow.internal.PreSsa private import semmle.code.csharp.controlflow.BasicBlocks as BasicBlocks private import semmle.code.csharp.controlflow.Guards as Guards +private import semmle.code.csharp.dataflow.internal.BaseSSA private module SsaInput implements SsaImplCommon::InputSig { class SourceVariable = Ssa::SourceVariable; @@ -783,7 +783,7 @@ cached private module Cached { cached newtype TSourceVariable = - TLocalVar(Callable c, PreSsa::SimpleLocalScopeVariable v) { + TLocalVar(Callable c, BaseSsa::SimpleLocalScopeVariable v) { c = v.getCallable() or // Local scope variables can be captured @@ -967,18 +967,22 @@ private module Cached { cached // nothing is actually cached module BarrierGuard { - private predicate guardChecksAdjTypes( - DataFlowIntegrationInput::Guard g, DataFlowIntegrationInput::Expr e, - DataFlowIntegrationInput::GuardValue branch + private import codeql.util.Unit + + private predicate guardChecksAdjTypes(Guards::Guards::Guard g, Expr e, Guards::GuardValue v) { + guardChecks(g, e, v) + } + + private predicate guardChecksWithWrappers( + Guards::Guard g, Definition def, Guards::GuardValue val, Unit state ) { - exists(Guards::GuardValue v | - guardChecks(g, e.getAstNode(), v) and - branch = v.asBooleanValue() - ) + Guards::Guards::ValidationWrapper::guardChecksDef(g, def, val) and + exists(state) } private Node getABarrierNodeImpl() { - result = DataFlowIntegrationImpl::BarrierGuard::getABarrierNode() + result = + DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(_) } predicate getABarrierNode = getABarrierNodeImpl/0; @@ -1037,38 +1041,18 @@ private module DataFlowIntegrationInput implements Impl::DataFlowIntegrationInpu ) } - class GuardValue = Boolean; + class GuardValue = Guards::GuardValue; - class Guard extends Guards::Guard { - /** - * Holds if the evaluation of this guard to `branch` corresponds to the edge - * from `bb1` to `bb2`. - */ - predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { - exists(ControlFlow::ConditionalSuccessor s | - this.getAControlFlowNode() = bb1.getLastNode() and - bb2 = bb1.getASuccessor(s) and - s.getValue() = branch - ) - } + class Guard = Guards::Guard; - /** - * Holds if this guard evaluating to `branch` controls the control-flow - * branch edge from `bb1` to `bb2`. That is, following the edge from - * `bb1` to `bb2` implies that this guard evaluated to `branch`. - */ - predicate valueControlsBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue branch) { - this.hasValueBranchEdge(bb1, bb2, branch) - } + /** Holds if the guard `guard` directly controls block `bb` upon evaluating to `val`. */ + predicate guardDirectlyControlsBlock(Guard guard, BasicBlock bb, GuardValue val) { + guard.directlyValueControls(bb, val) } - /** Holds if the guard `guard` controls block `bb` upon evaluating to `branch`. */ - predicate guardDirectlyControlsBlock(Guard guard, ControlFlow::BasicBlock bb, GuardValue branch) { - exists(ConditionBlock conditionBlock, ControlFlow::ConditionalSuccessor s | - guard.getAControlFlowNode() = conditionBlock.getLastNode() and - s.getValue() = branch and - conditionBlock.edgeDominates(bb, s) - ) + /** Holds if the guard `guard` controls block `bb` upon evaluating to `val`. */ + predicate guardControlsBlock(Guard guard, BasicBlock bb, GuardValue val) { + guard.valueControls(bb, val) } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll index 3146720efe8..b24a104d388 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/TaintTrackingPrivate.qll @@ -24,6 +24,13 @@ predicate defaultTaintSanitizer(DataFlow::Node node) { ) } +/** + * Gets the (unbound) property `System.Collections.Generic.KeyValuePair.Value`. + */ +private Property keyValuePairValue() { + result.hasFullyQualifiedName("System.Collections.Generic", "KeyValuePair`2", "Value") +} + /** * Holds if default `TaintTracking::Configuration`s should allow implicit reads * of `c` at sinks and inputs to additional taint steps. @@ -31,7 +38,11 @@ predicate defaultTaintSanitizer(DataFlow::Node node) { bindingset[node] predicate defaultImplicitTaintRead(DataFlow::Node node, DataFlow::ContentSet c) { exists(node) and - c.isElement() + ( + c.isElement() + or + c.isProperty(keyValuePairValue()) + ) } private class LocalTaintExprStepConfiguration extends ControlFlowReachabilityConfiguration { diff --git a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql index 8ae848feaeb..dbef9b714ef 100644 --- a/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql +++ b/csharp/ql/src/Bad Practices/Declarations/NoConstantsOnly.ql @@ -28,6 +28,7 @@ where c.getAMember() instanceof ConstantField and forex(Member m | m = c.getAMember() | m instanceof ConstantField or - m instanceof Constructor + m instanceof Constructor or + m.isCompilerGenerated() ) select c, "Class '" + c.getName() + "' only declares common constants." diff --git a/csharp/ql/src/Bad Practices/PathCombine.ql b/csharp/ql/src/Bad Practices/PathCombine.ql index 24d358e83aa..2354ef39d70 100644 --- a/csharp/ql/src/Bad Practices/PathCombine.ql +++ b/csharp/ql/src/Bad Practices/PathCombine.ql @@ -1,6 +1,7 @@ /** - * @name Call to System.IO.Path.Combine - * @description Finds calls to System.IO.Path's Combine method + * @name Call to 'System.IO.Path.Combine' may silently drop its earlier arguments + * @description 'Path.Combine' may silently drop its earlier arguments + * if its later arguments are absolute paths. * @kind problem * @problem.severity recommendation * @precision very-high @@ -15,4 +16,4 @@ import semmle.code.csharp.frameworks.System from MethodCall call where call.getTarget().hasFullyQualifiedName("System.IO", "Path", "Combine") -select call, "Call to 'System.IO.Path.Combine'." +select call, "Call to 'System.IO.Path.Combine' may silently drop its earlier arguments." diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index dcb688a3e62..e91f882b9ed 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.3 + +No user-facing changes. + ## 1.5.2 No user-facing changes. diff --git a/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md b/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md new file mode 100644 index 00000000000..c2ce476dd7a --- /dev/null +++ b/csharp/ql/src/change-notes/2025-12-11-nhibernate-sql-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added `NHibernate.ISession.CreateSQLQuery`, `NHibernate.IStatelessSession.CreateSQLQuery` and `NHibernate.Impl.AbstractSessionImpl.CreateSQLQuery` as SQL injection sinks. \ No newline at end of file diff --git a/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md new file mode 100644 index 00000000000..23c74d27398 --- /dev/null +++ b/csharp/ql/src/change-notes/2025-12-16-path-combine-metadata.md @@ -0,0 +1,4 @@ +--- +category: queryMetadata +--- +* Updated the `name`, `description`, and alert message of `cs/path-combine` to have more details about why it's a problem. diff --git a/csharp/ql/src/change-notes/released/1.5.3.md b/csharp/ql/src/change-notes/released/1.5.3.md new file mode 100644 index 00000000000..2e9bcb5e663 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.5.3.md @@ -0,0 +1,3 @@ +## 1.5.3 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 7eb901bae56..232224b0e26 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.5.3 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 9876f3b9f07..efe787aaae5 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.5.3-dev +version: 1.5.4-dev groups: - csharp - queries diff --git a/csharp/ql/test/library-tests/arguments/PrintAst.expected b/csharp/ql/test/library-tests/arguments/PrintAst.expected index b63b49cc7f5..fbf61c14743 100644 --- a/csharp/ql/test/library-tests/arguments/PrintAst.expected +++ b/csharp/ql/test/library-tests/arguments/PrintAst.expected @@ -1,6 +1,6 @@ arguments.cs: # 4| [Class] ArgumentsTest -# 6| 4: [InstanceConstructor] ArgumentsTest +# 6| 5: [InstanceConstructor] ArgumentsTest #-----| 2: (Parameters) # 6| 0: [Parameter] x # 6| -1: [TypeMention] int @@ -9,7 +9,7 @@ arguments.cs: # 6| -1: [TypeMention] int # 6| 1: [IntLiteral] 0 # 7| 4: [BlockStmt] {...} -# 10| 5: [InstanceConstructor] ArgumentsTest +# 10| 6: [InstanceConstructor] ArgumentsTest #-----| 2: (Parameters) # 10| 0: [Parameter] x # 10| -1: [TypeMention] int @@ -22,7 +22,7 @@ arguments.cs: # 12| 0: [AssignExpr] ... = ... # 12| 0: [ParameterAccess] access to parameter y # 12| 1: [ParameterAccess] access to parameter x -# 15| 6: [Method] f1 +# 15| 7: [Method] f1 # 15| -1: [TypeMention] Void #-----| 2: (Parameters) # 15| 0: [Parameter] x @@ -32,7 +32,7 @@ arguments.cs: # 15| -1: [TypeMention] int # 15| 1: [IntLiteral] 2 # 16| 4: [BlockStmt] {...} -# 19| 7: [Method] f2 +# 19| 8: [Method] f2 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] x @@ -46,7 +46,7 @@ arguments.cs: # 21| 0: [AssignExpr] ... = ... # 21| 0: [ParameterAccess] access to parameter y # 21| 1: [ParameterAccess] access to parameter x -# 24| 8: [Method] f +# 24| 9: [Method] f # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; @@ -73,7 +73,7 @@ arguments.cs: # 31| -1: [TypeMention] ArgumentsTest # 31| 0: [IntLiteral] 10 # 31| 1: [IntLiteral] 5 -# 34| 9: [Method] f3 +# 34| 10: [Method] f3 # 34| -1: [TypeMention] Void #-----| 2: (Parameters) # 34| 0: [Parameter] o @@ -135,7 +135,7 @@ arguments.cs: # 43| 1: [LocalVariableAccess] access to local variable s1 # 43| 2: [CastExpr] (...) ... # 43| 1: [LocalVariableAccess] access to local variable s2 -# 46| 10: [Method] f4 +# 46| 11: [Method] f4 # 46| -1: [TypeMention] Void #-----| 2: (Parameters) # 46| 0: [Parameter] args @@ -150,13 +150,13 @@ arguments.cs: # 48| -1: [ArrayInitializer] { ..., ... } # 48| 0: [NullLiteral] null # 48| 1: [NullLiteral] null -# 51| 11: [Property] Prop +# 51| 12: [Property] Prop # 51| -1: [TypeMention] int # 51| 3: [Getter] get_Prop # 51| 4: [Setter] set_Prop #-----| 2: (Parameters) # 51| 0: [Parameter] value -# 53| 12: [Indexer] Item +# 53| 13: [Indexer] Item # 53| -1: [TypeMention] int #-----| 1: (Parameters) # 53| 0: [Parameter] a @@ -176,7 +176,7 @@ arguments.cs: # 53| 1: [Parameter] b # 53| 2: [Parameter] value # 53| 4: [BlockStmt] {...} -# 55| 13: [Method] f5 +# 55| 14: [Method] f5 # 55| -1: [TypeMention] Void # 56| 4: [BlockStmt] {...} # 57| 0: [ExprStmt] ...; @@ -237,14 +237,14 @@ arguments.cs: # 65| 0: [IntLiteral] 15 # 65| 1: [IntLiteral] 16 # 65| 1: [LocalVariableAccess] access to local variable tuple -# 69| 14: [Method] f6 +# 69| 15: [Method] f6 # 69| -1: [TypeMention] Void #-----| 0: (Attributes) # 68| 1: [DefaultAttribute] [My(...)] # 68| -1: [TypeMention] MyAttribute # 68| 0: [BoolLiteral] false # 69| 4: [BlockStmt] {...} -# 72| 15: [Method] f7 +# 72| 16: [Method] f7 # 72| -1: [TypeMention] Void #-----| 0: (Attributes) # 71| 1: [DefaultAttribute] [My(...)] @@ -253,7 +253,7 @@ arguments.cs: # 71| 1: [StringLiteralUtf16] "" # 71| 2: [IntLiteral] 0 # 72| 4: [BlockStmt] {...} -# 74| 17: [Method] f8`1 +# 74| 18: [Method] f8`1 # 74| -1: [TypeMention] Void #-----| 1: (Type parameters) # 74| 0: [TypeParameter] T @@ -337,7 +337,7 @@ arguments.cs: # 86| 1: [IntLiteral] 1 # 86| 1: [CastExpr] (...) ... # 86| 1: [IntLiteral] 2 -# 89| 19: [Method] f9`1 +# 89| 20: [Method] f9`1 # 89| -1: [TypeMention] Void #-----| 1: (Type parameters) # 89| 0: [TypeParameter] T @@ -406,7 +406,7 @@ arguments.cs: # 100| 1: [ElementInitializer] call to method Add # 100| 0: [CastExpr] (...) ... # 100| 1: [IntLiteral] 2 -# 103| 20: [Method] f10 +# 103| 21: [Method] f10 # 103| -1: [TypeMention] Void #-----| 2: (Parameters) # 103| 0: [Parameter] o @@ -465,22 +465,22 @@ arguments.cs: # 116| [Class] MyAttribute #-----| 3: (Base types) # 116| 0: [TypeMention] Attribute -# 118| 4: [Field] x +# 118| 5: [Field] x # 118| -1: [TypeMention] int -# 119| 5: [Property] y +# 119| 6: [Property] y # 119| -1: [TypeMention] string # 119| 3: [Getter] get_y # 119| 4: [Setter] set_y #-----| 2: (Parameters) # 119| 0: [Parameter] value -# 120| 6: [InstanceConstructor] MyAttribute +# 120| 7: [InstanceConstructor] MyAttribute #-----| 2: (Parameters) # 120| 0: [Parameter] b # 120| -1: [TypeMention] bool # 120| 4: [BlockStmt] {...} lambdas.cs: # 3| [Class] LambdaArgumentsTest -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -546,13 +546,13 @@ lambdas.cs: # 17| 0: [IntLiteral] 7 # 17| 1: [IntLiteral] 8 # 17| 2: [IntLiteral] 9 -# 20| 6: [DelegateType] MyDelegate +# 20| 7: [DelegateType] MyDelegate #-----| 2: (Parameters) # 20| 0: [Parameter] x # 20| -1: [TypeMention] int # 20| 1: [Parameter] y # 20| -1: [TypeMention] int -# 22| 7: [Method] M2 +# 22| 8: [Method] M2 # 22| -1: [TypeMention] Void # 23| 4: [BlockStmt] {...} # 24| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/assemblies/compilation.expected b/csharp/ql/test/library-tests/assemblies/compilation.expected index ee9126f59ce..8afa20dab5f 100644 --- a/csharp/ql/test/library-tests/assemblies/compilation.expected +++ b/csharp/ql/test/library-tests/assemblies/compilation.expected @@ -1,9 +1,9 @@ | Assembly1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | no compilation | | Locations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null | has compilation | | System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | -| System.Console, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Console, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | | System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | -| System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e | no compilation | -| System.Runtime, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | -| System.Runtime.Extensions, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Private.CoreLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e | no compilation | +| System.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | +| System.Runtime.Extensions, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a | no compilation | | mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 | no compilation | diff --git a/csharp/ql/test/library-tests/assignments/PrintAst.expected b/csharp/ql/test/library-tests/assignments/PrintAst.expected index e309da37a0e..bece0312d15 100644 --- a/csharp/ql/test/library-tests/assignments/PrintAst.expected +++ b/csharp/ql/test/library-tests/assignments/PrintAst.expected @@ -1,6 +1,6 @@ Assignments.cs: # 1| [Class] Assignments -# 3| 5: [Method] M +# 3| 6: [Method] M # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 5| 0: [LocalVariableDeclStmt] ... ...; @@ -40,7 +40,7 @@ Assignments.cs: # 14| 0: [Parameter] sender # 14| 1: [Parameter] e # 14| 4: [BlockStmt] {...} -# 17| 6: [AddOperator] + +# 17| 7: [AddOperator] + # 17| -1: [TypeMention] Assignments #-----| 2: (Parameters) # 17| 0: [Parameter] x @@ -50,13 +50,13 @@ Assignments.cs: # 18| 4: [BlockStmt] {...} # 19| 0: [ReturnStmt] return ...; # 19| 0: [ParameterAccess] access to parameter x -# 22| 7: [DelegateType] EventHandler +# 22| 8: [DelegateType] EventHandler #-----| 2: (Parameters) # 22| 0: [Parameter] sender # 22| -1: [TypeMention] object # 22| 1: [Parameter] e # 22| -1: [TypeMention] object -# 23| 8: [Event] Event +# 23| 9: [Event] Event # 23| -1: [TypeMention] EventHandler # 23| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) diff --git a/csharp/ql/test/library-tests/attributes/PrintAst.expected b/csharp/ql/test/library-tests/attributes/PrintAst.expected index 00412ae011a..e16a6ff8a92 100644 --- a/csharp/ql/test/library-tests/attributes/PrintAst.expected +++ b/csharp/ql/test/library-tests/attributes/PrintAst.expected @@ -102,7 +102,7 @@ attributes.cs: # 45| 0: [TypeMention] AttributeTargets #-----| 3: (Base types) # 46| 0: [TypeMention] Attribute -# 49| 5: [Method] foo +# 49| 6: [Method] foo # 49| -1: [TypeMention] Void #-----| 0: (Attributes) # 48| 1: [DefaultAttribute] [Conditional(...)] @@ -110,7 +110,7 @@ attributes.cs: # 48| 0: [StringLiteralUtf16] "DEBUG2" # 49| 4: [BlockStmt] {...} # 52| [Class] Bar -# 54| 5: [Method] inc +# 54| 6: [Method] inc # 54| -1: [TypeMention] int #-----| 2: (Parameters) # 54| 0: [Parameter] x @@ -123,14 +123,14 @@ attributes.cs: # 54| 0: [AddExpr] ... + ... # 54| 0: [ParameterAccess] access to parameter x # 54| 1: [IntLiteral] 1 -# 57| 6: [Method] M1 +# 57| 7: [Method] M1 # 57| -1: [TypeMention] Void #-----| 0: (Attributes) # 56| 1: [DefaultAttribute] [My(...)] # 56| -1: [TypeMention] MyAttribute # 56| 0: [BoolLiteral] false # 57| 4: [BlockStmt] {...} -# 61| 7: [Method] M2 +# 61| 8: [Method] M2 # 61| -1: [TypeMention] Void #-----| 0: (Attributes) # 59| 1: [DefaultAttribute] [My(...)] @@ -148,15 +148,15 @@ attributes.cs: # 64| [Class] MyAttribute #-----| 3: (Base types) # 64| 0: [TypeMention] Attribute -# 66| 4: [Field] x +# 66| 5: [Field] x # 66| -1: [TypeMention] int -# 67| 5: [Property] y +# 67| 6: [Property] y # 67| -1: [TypeMention] string # 67| 3: [Getter] get_y # 67| 4: [Setter] set_y #-----| 2: (Parameters) # 67| 0: [Parameter] value -# 68| 6: [InstanceConstructor] MyAttribute +# 68| 7: [InstanceConstructor] MyAttribute #-----| 2: (Parameters) # 68| 0: [Parameter] b # 68| -1: [TypeMention] bool @@ -167,14 +167,14 @@ attributes.cs: # 73| [Class] ArgsAttribute #-----| 3: (Base types) # 73| 0: [TypeMention] Attribute -# 75| 4: [Property] Prop +# 75| 5: [Property] Prop # 75| -1: [TypeMention] Object[] # 75| 1: [TypeMention] object # 75| 3: [Getter] get_Prop # 75| 4: [Setter] set_Prop #-----| 2: (Parameters) # 75| 0: [Parameter] value -# 76| 5: [InstanceConstructor] ArgsAttribute +# 76| 6: [InstanceConstructor] ArgsAttribute #-----| 2: (Parameters) # 76| 0: [Parameter] i # 76| -1: [TypeMention] int @@ -216,7 +216,7 @@ attributes.cs: # 79| 1: [TypeofExpr] typeof(...) # 79| 0: [TypeAccess] access to type Int32 # 79| 0: [TypeMention] int -# 84| 5: [Method] SomeMethod +# 84| 6: [Method] SomeMethod # 84| -1: [TypeMention] int #-----| 0: (Attributes) # 82| 1: [DefaultAttribute] [Args(...)] @@ -279,13 +279,13 @@ attributes.cs: # 87| [Class] My2Attribute #-----| 3: (Base types) # 87| 0: [TypeMention] Attribute -# 89| 4: [Property] X +# 89| 5: [Property] X # 89| -1: [TypeMention] int # 89| 3: [Getter] get_X # 89| 4: [Setter] set_X #-----| 2: (Parameters) # 89| 0: [Parameter] value -# 90| 5: [InstanceConstructor] My2Attribute +# 90| 6: [InstanceConstructor] My2Attribute #-----| 2: (Parameters) # 90| 0: [Parameter] a # 90| -1: [TypeMention] bool @@ -301,7 +301,7 @@ attributes.cs: # 93| [Class] My3Attribute #-----| 3: (Base types) # 93| 0: [TypeMention] Attribute -# 95| 4: [InstanceConstructor] My3Attribute +# 95| 5: [InstanceConstructor] My3Attribute #-----| 2: (Parameters) # 95| 0: [Parameter] x # 95| -1: [TypeMention] int @@ -323,7 +323,7 @@ attributes.cs: # 104| 0: [Parameter] message # 104| -1: [TypeMention] string # 106| [Class] MyAttributeUsage -# 110| 5: [AddOperator] + +# 110| 6: [AddOperator] + # 110| -1: [TypeMention] int #-----| 0: (Attributes) # 108| 1: [DefaultAttribute] [My3(...)] @@ -338,7 +338,7 @@ attributes.cs: # 110| 1: [Parameter] b # 110| -1: [TypeMention] MyAttributeUsage # 110| 4: [IntLiteral] 0 -# 113| 6: [Indexer] Item +# 113| 7: [Indexer] Item # 113| -1: [TypeMention] int #-----| 0: (Attributes) # 112| 1: [DefaultAttribute] [My3(...)] @@ -376,9 +376,9 @@ attributes.cs: # 120| 0: [IntLiteral] 10 # 121| 4: [BlockStmt] {...} # 121| 0: [ReturnStmt] return ...; -# 124| 7: [Field] p +# 124| 8: [Field] p # 124| -1: [TypeMention] int -# 126| 8: [Property] Prop1 +# 126| 9: [Property] Prop1 # 126| -1: [TypeMention] int #-----| 0: (Attributes) # 125| 1: [DefaultAttribute] [My3(...)] @@ -412,10 +412,10 @@ attributes.cs: # 134| 0: [FieldAccess] access to field p # 134| 1: [ParameterAccess] access to parameter value # 138| [Class] Class1 -# 140| 5: [Class] ParamsAttribute +# 140| 6: [Class] ParamsAttribute #-----| 3: (Base types) # 140| 0: [TypeMention] Attribute -# 142| 4: [InstanceConstructor] ParamsAttribute +# 142| 5: [InstanceConstructor] ParamsAttribute #-----| 2: (Parameters) # 142| 0: [Parameter] s1 # 142| -1: [TypeMention] string @@ -425,7 +425,7 @@ attributes.cs: # 142| -1: [TypeMention] Int32[] # 142| 1: [TypeMention] int # 142| 4: [BlockStmt] {...} -# 146| 6: [Method] M1 +# 146| 7: [Method] M1 # 146| -1: [TypeMention] Void #-----| 0: (Attributes) # 145| 1: [DefaultAttribute] [Params(...)] @@ -436,7 +436,7 @@ attributes.cs: # 145| 3: [IntLiteral] 2 # 145| 4: [IntLiteral] 3 # 146| 4: [BlockStmt] {...} -# 149| 7: [Method] M2 +# 149| 8: [Method] M2 # 149| -1: [TypeMention] Void #-----| 0: (Attributes) # 148| 1: [DefaultAttribute] [Params(...)] @@ -447,7 +447,7 @@ attributes.cs: # 148| 3: [IntLiteral] 2 # 148| 4: [IntLiteral] 3 # 149| 4: [BlockStmt] {...} -# 152| 8: [Method] M3 +# 152| 9: [Method] M3 # 152| -1: [TypeMention] Void #-----| 0: (Attributes) # 151| 1: [DefaultAttribute] [Params(...)] @@ -456,7 +456,7 @@ attributes.cs: # 151| 1: [StringLiteralUtf16] "b" # 151| 2: [IntLiteral] 1 # 152| 4: [BlockStmt] {...} -# 155| 9: [Method] M4 +# 155| 10: [Method] M4 # 155| -1: [TypeMention] Void #-----| 0: (Attributes) # 154| 1: [DefaultAttribute] [Params(...)] @@ -472,7 +472,7 @@ attributes.cs: # 158| 1: [DefaultAttribute] [Experimental(...)] # 158| -1: [TypeMention] ExperimentalAttribute # 158| 0: [StringLiteralUtf16] "MyExperimentalClassId" -# 162| 5: [Method] MyExperimentalMethod +# 162| 6: [Method] MyExperimentalMethod # 162| -1: [TypeMention] Void #-----| 0: (Attributes) # 161| 1: [DefaultAttribute] [Experimental(...)] @@ -480,7 +480,7 @@ attributes.cs: # 161| 0: [StringLiteralUtf16] "MyExperimentalMethodId" # 162| 4: [BlockStmt] {...} # 165| [Class] MyOverloadResolutionClass -# 168| 5: [Method] M +# 168| 6: [Method] M # 168| -1: [TypeMention] Void #-----| 0: (Attributes) # 167| 1: [DefaultAttribute] [OverloadResolutionPriority(...)] @@ -492,7 +492,7 @@ attributes.cs: # 168| -1: [TypeMention] Int32[] # 168| 1: [TypeMention] int # 168| 4: [BlockStmt] {...} -# 171| 6: [Method] M +# 171| 7: [Method] M # 171| -1: [TypeMention] Void #-----| 0: (Attributes) # 170| 1: [DefaultAttribute] [OverloadResolutionPriority(...)] @@ -503,7 +503,7 @@ attributes.cs: # 171| -1: [TypeMention] IEnumerable # 171| 1: [TypeMention] int # 171| 4: [BlockStmt] {...} -# 174| 7: [Method] M +# 174| 8: [Method] M # 174| -1: [TypeMention] Void #-----| 0: (Attributes) # 173| 1: [DefaultAttribute] [OverloadResolutionPriority(...)] diff --git a/csharp/ql/test/library-tests/comments/PrintAst.expected b/csharp/ql/test/library-tests/comments/PrintAst.expected index 68c2c582e37..9bc446858ee 100644 --- a/csharp/ql/test/library-tests/comments/PrintAst.expected +++ b/csharp/ql/test/library-tests/comments/PrintAst.expected @@ -1,19 +1,19 @@ comments1.cs: # 9| [Class] C # 34| [Class] Foo -# 39| 5: [Field] x +# 39| 6: [Field] x # 39| -1: [TypeMention] int -# 42| 6: [Field] y +# 42| 7: [Field] y # 42| -1: [TypeMention] int -# 43| 7: [Field] z +# 43| 8: [Field] z # 43| -1: [TypeMention] int comments2.cs: # 11| [Class] C2 -# 13| 4: [Field] field1 +# 13| 5: [Field] field1 # 13| -1: [TypeMention] int -# 14| 5: [Field] field2 +# 14| 6: [Field] field2 # 14| -1: [TypeMention] int -# 19| 6: [Method] f +# 19| 7: [Method] f # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 23| 0: [ExprStmt] ...; @@ -21,7 +21,7 @@ comments2.cs: # 26| 1: [ExprStmt] ...; # 26| 0: [MethodCall] call to method g # 26| 0: [IntLiteral] 2 -# 29| 7: [Method] g +# 29| 8: [Method] g # 29| -1: [TypeMention] Void #-----| 2: (Parameters) # 29| 0: [Parameter] x @@ -37,8 +37,8 @@ comments2.cs: # 34| -1: [TypeMention] int # 34| 0: [LocalVariableAccess] access to local variable z # 34| 1: [IntLiteral] 0 -# 40| 8: [Class] C3 -# 48| 9: [Property] S1 +# 40| 9: [Class] C3 +# 48| 10: [Property] S1 # 48| -1: [TypeMention] string # 52| 3: [Getter] get_S1 # 52| 4: [BlockStmt] {...} @@ -48,15 +48,15 @@ comments2.cs: #-----| 2: (Parameters) # 53| 0: [Parameter] value # 54| 4: [BlockStmt] {...} -# 61| 10: [Enum] Values +# 61| 11: [Enum] Values # 66| 5: [Field] First # 67| 6: [Field] Second # 73| 7: [Field] Third -# 79| 11: [InstanceConstructor] C2 +# 79| 12: [InstanceConstructor] C2 # 80| 4: [BlockStmt] {...} -# 85| 12: [Destructor] ~C2 +# 85| 13: [Destructor] ~C2 # 86| 4: [BlockStmt] {...} -# 90| 13: [AddOperator] + +# 90| 14: [AddOperator] + # 90| -1: [TypeMention] int #-----| 2: (Parameters) # 90| 0: [Parameter] x @@ -66,7 +66,7 @@ comments2.cs: # 91| 4: [BlockStmt] {...} # 92| 0: [ReturnStmt] return ...; # 92| 0: [IntLiteral] 2 -# 95| 14: [Method] f +# 95| 15: [Method] f # 95| -1: [TypeMention] Void #-----| 2: (Parameters) # 96| 0: [Parameter] x @@ -74,8 +74,8 @@ comments2.cs: # 97| 1: [Parameter] y # 97| -1: [TypeMention] int # 99| 4: [BlockStmt] {...} -# 103| 15: [DelegateType] D -# 107| 16: [Event] E +# 103| 16: [DelegateType] D +# 107| 17: [Event] E # 107| -1: [TypeMention] D # 107| 3: [AddEventAccessor] add_E #-----| 2: (Parameters) @@ -83,7 +83,7 @@ comments2.cs: # 107| 4: [RemoveEventAccessor] remove_E #-----| 2: (Parameters) # 107| 0: [Parameter] value -# 110| 17: [Method] gen +# 110| 18: [Method] gen # 110| -1: [TypeMention] Void # 111| 4: [BlockStmt] {...} # 112| 0: [LocalVariableDeclStmt] ... ...; @@ -110,12 +110,12 @@ comments2.cs: # 115| -1: [TypeMention] int # 115| 0: [LocalVariableAccess] access to local variable t4 # 115| 1: [MethodCall] call to method GenericFn -# 119| 20: [Class] GenericClass`1 +# 119| 21: [Class] GenericClass`1 #-----| 1: (Type parameters) # 119| 0: [TypeParameter] T -# 121| 5: [Field] f +# 121| 6: [Field] f # 121| -1: [TypeMention] int -# 125| 23: [Method] GenericFn`1 +# 125| 24: [Method] GenericFn`1 # 125| -1: [TypeMention] int #-----| 1: (Type parameters) # 125| 0: [TypeParameter] T @@ -129,7 +129,7 @@ comments2.cs: # 128| 0: [IntLiteral] 0 trivia.cs: # 14| [Class] Tr1 -# 16| 5: [Method] M1 +# 16| 6: [Method] M1 # 16| -1: [TypeMention] Void # 17| 4: [BlockStmt] {...} comments1.cs: @@ -155,7 +155,7 @@ trivia.cs: # 28| 0: [LocalVariableDeclExpr] Double d # 28| 0: [TypeMention] double # 32| [Class] Tr2 -# 34| 5: [Method] M1 +# 34| 6: [Method] M1 # 34| -1: [TypeMention] Void # 35| 4: [BlockStmt] {...} # 37| 0: [LocalVariableDeclStmt] ... ...; @@ -165,11 +165,11 @@ trivia.cs: # 39| 0: [LocalVariableDeclExpr] Int32 j # 39| 0: [TypeMention] int # 45| [Class] Tr3 -# 47| 5: [Method] M1 +# 47| 6: [Method] M1 # 47| -1: [TypeMention] Void # 48| 4: [BlockStmt] {...} # 61| [Class] Tr4 -# 63| 5: [Method] M1 +# 63| 6: [Method] M1 # 63| -1: [TypeMention] Void # 64| 4: [BlockStmt] {...} # 73| 0: [LocalVariableDeclStmt] ... ...; @@ -178,25 +178,25 @@ trivia.cs: # 73| 0: [LocalVariableAccess] access to local variable i # 73| 1: [IntLiteral] 1 # 80| [Class] Tr5 -# 83| 5: [Method] M1 +# 83| 6: [Method] M1 # 83| -1: [TypeMention] Void # 84| 4: [BlockStmt] {...} -# 88| 6: [Method] M2 +# 88| 7: [Method] M2 # 88| -1: [TypeMention] Void # 89| 4: [BlockStmt] {...} -# 92| 7: [Field] F1 +# 92| 8: [Field] F1 # 92| -1: [TypeMention] int # 94| 1: [IntLiteral] 10 -# 98| 8: [Field] F2 +# 98| 9: [Field] F2 # 98| -1: [TypeMention] int # 98| 1: [IntLiteral] 0 -# 100| 9: [Property] P1 +# 100| 10: [Property] P1 # 100| -1: [TypeMention] int # 102| 3: [Getter] get_P1 # 104| 4: [Setter] set_P1 #-----| 2: (Parameters) # 104| 0: [Parameter] value -# 108| 10: [Property] P2 +# 108| 11: [Property] P2 # 108| -1: [TypeMention] int # 108| 3: [Getter] get_P2 # 108| 4: [Setter] set_P2 diff --git a/csharp/ql/test/library-tests/constructors/PrintAst.expected b/csharp/ql/test/library-tests/constructors/PrintAst.expected index fc5c19ac2df..000ae29f2c2 100644 --- a/csharp/ql/test/library-tests/constructors/PrintAst.expected +++ b/csharp/ql/test/library-tests/constructors/PrintAst.expected @@ -1,16 +1,16 @@ constructors.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Class -# 5| 4: [InstanceConstructor] Class +# 5| 5: [InstanceConstructor] Class # 6| 4: [BlockStmt] {...} -# 8| 5: [InstanceConstructor] Class +# 8| 6: [InstanceConstructor] Class #-----| 2: (Parameters) # 8| 0: [Parameter] i # 8| -1: [TypeMention] int # 9| 4: [BlockStmt] {...} -# 11| 6: [StaticConstructor] Class +# 11| 7: [StaticConstructor] Class # 12| 4: [BlockStmt] {...} -# 14| 7: [Destructor] ~Class +# 14| 8: [Destructor] ~Class # 15| 4: [BlockStmt] {...} # 16| 0: [LocalVariableDeclStmt] ... ...; # 16| 0: [LocalVariableDeclAndInitExpr] Int32 i = ... @@ -19,13 +19,13 @@ constructors.cs: # 16| 1: [IntLiteral] 0 # 21| [NamespaceDeclaration] namespace ... { ... } # 23| 1: [Class] C1 -# 23| 4: [InstanceConstructor,PrimaryConstructor] C1 +# 23| 5: [InstanceConstructor,PrimaryConstructor] C1 #-----| 2: (Parameters) # 23| 0: [Parameter] o # 23| -1: [TypeMention] object # 23| 1: [Parameter] s # 23| -1: [TypeMention] string -# 25| 5: [InstanceConstructor] C1 +# 25| 6: [InstanceConstructor] C1 #-----| 2: (Parameters) # 25| 0: [Parameter] o # 25| -1: [TypeMention] object @@ -36,7 +36,7 @@ constructors.cs: # 28| 2: [Class] C2 #-----| 3: (Base types) # 28| 0: [TypeMention] C1 -# 28| 4: [InstanceConstructor,PrimaryConstructor] C2 +# 28| 5: [InstanceConstructor,PrimaryConstructor] C2 #-----| 2: (Parameters) # 28| 0: [Parameter] o # 28| -1: [TypeMention] object diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index c9f7d2ab35c..99d89a29c13 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -1,4 +1,4 @@ -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | 5 | +| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | 7 | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | exit get_Item | 4 | | 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 | @@ -12,12 +12,12 @@ | 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: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 | 5 | +| 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 | | ArrayCreation.cs:5:12:5:13 | enter M2 | ArrayCreation.cs:5:12:5:13 | exit M2 | 6 | | ArrayCreation.cs:7:11:7:12 | enter M3 | ArrayCreation.cs:7:11:7:12 | exit M3 | 8 | | ArrayCreation.cs:9:12:9:13 | enter M4 | ArrayCreation.cs:9:12:9:13 | exit M4 | 13 | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | exit AssertTests | 5 | +| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | exit AssertTests | 7 | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:9:20:9:20 | access to parameter b | 4 | | Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | exit M1 | 1 | | Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 (abnormal) | 1 | @@ -163,11 +163,11 @@ | Assert.cs:138:10:138:12 | exit M13 | Assert.cs:138:10:138:12 | exit M13 | 1 | | Assert.cs:138:10:138:12 | exit M13 (abnormal) | Assert.cs:138:10:138:12 | exit M13 (abnormal) | 1 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | 2 | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | exit Assignments | 5 | +| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | exit Assignments | 7 | | 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 | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry | 5 | +| 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 | | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | BreakInTry.cs:7:13:11:13 | foreach (... ... in ...) ... | 1 | @@ -197,18 +197,18 @@ | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | BreakInTry.cs:65:13:69:13 | foreach (... ... in ...) ... | 1 | | BreakInTry.cs:65:26:65:28 | String arg | BreakInTry.cs:67:21:67:31 | ... == ... | 6 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | 1 | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | 5 | +| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | 7 | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | exit Default | 6 | | CompileTimeOperators.cs:10:9:10:14 | enter Sizeof | CompileTimeOperators.cs:10:9:10:14 | exit Sizeof | 6 | | CompileTimeOperators.cs:15:10:15:15 | enter Typeof | CompileTimeOperators.cs:15:10:15:15 | exit Typeof | 6 | | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | CompileTimeOperators.cs:20:12:20:17 | exit Nameof | 6 | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | 5 | +| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | 7 | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | 9 | | CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | exit M | 1 | | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | 1 | | CompileTimeOperators.cs:39:9:39:34 | ...; | CompileTimeOperators.cs:39:9:39:33 | call to method WriteLine | 3 | | CompileTimeOperators.cs:40:9:40:11 | End: | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | 5 | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | 5 | +| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | 7 | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | 2 | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | 2 | | ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:38 | call to method ToString | 1 | @@ -245,7 +245,7 @@ | 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 | -| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 5 | +| 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 | | Conditions.cs:6:13:6:16 | ...; | Conditions.cs:6:13:6:15 | ...++ | 3 | @@ -334,7 +334,7 @@ | Conditions.cs:145:27:145:29 | "b" | Conditions.cs:145:27:145:29 | "b" | 1 | | Conditions.cs:147:13:147:49 | ...; | Conditions.cs:147:13:147:48 | call to method WriteLine | 6 | | Conditions.cs:149:13:149:49 | ...; | Conditions.cs:149:13:149:48 | call to method WriteLine | 6 | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods | 5 | +| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods | 7 | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | exit M1 | 8 | | ExitMethods.cs:14:10:14:11 | enter M2 | ExitMethods.cs:14:10:14:11 | exit M2 | 8 | | ExitMethods.cs:20:10:20:11 | enter M3 | ExitMethods.cs:20:10:20:11 | exit M3 | 7 | @@ -383,7 +383,7 @@ | Extensions.cs:10:24:10:29 | enter ToBool | Extensions.cs:10:24:10:29 | exit ToBool | 8 | | Extensions.cs:15:23:15:33 | enter CallToInt32 | Extensions.cs:15:23:15:33 | exit CallToInt32 | 5 | | Extensions.cs:20:17:20:20 | enter Main | Extensions.cs:20:17:20:20 | exit Main | 20 | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | exit Finally | 5 | +| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | exit Finally | 7 | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:15:13:15:40 | call to method WriteLine | 11 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | exit M1 | 1 | | Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 (abnormal) | 1 | @@ -464,9 +464,9 @@ | Finally.cs:161:30:161:30 | Exception e | Finally.cs:161:39:161:54 | ... == ... | 5 | | Finally.cs:162:13:164:13 | {...} | Finally.cs:163:17:163:42 | call to method WriteLine | 6 | | Finally.cs:165:13:168:13 | catch {...} | Finally.cs:167:17:167:37 | call to method WriteLine | 5 | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA | 5 | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB | 5 | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC | 5 | +| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA | 7 | +| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB | 7 | +| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC | 7 | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:180:17:180:18 | access to parameter b1 | 6 | | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | exit M9 | 1 | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 (abnormal) | 1 | @@ -511,7 +511,7 @@ | Finally.cs:263:10:263:12 | exit M13 | Finally.cs:263:10:263:12 | exit M13 | 1 | | Finally.cs:263:10:263:12 | exit M13 (abnormal) | Finally.cs:263:10:263:12 | exit M13 (abnormal) | 1 | | Finally.cs:263:10:263:12 | exit M13 (normal) | Finally.cs:263:10:263:12 | exit M13 (normal) | 1 | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | exit Foreach | 5 | +| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | exit Foreach | 7 | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:8:29:8:32 | access to parameter args | 3 | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | 2 | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | 1 | @@ -539,19 +539,22 @@ | 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 | 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 | 16 | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | exit Initializers | 16 | +| 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 NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor | 11 | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 12 | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 9 | +| 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 | 14 | -| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers | 5 | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | exit Compound | 5 | +| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 13 | +| 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 | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | 5 | +| 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 | | LoopUnrolling.cs:10:13:10:19 | return ...; | LoopUnrolling.cs:10:13:10:19 | return ...; | 1 | @@ -609,9 +612,9 @@ | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | exit M11 | 2 | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | 1 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | 5 | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | 2 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | 1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | 2 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | {...} | 4 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | 1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | 1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | 3 | @@ -624,6 +627,9 @@ | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:16:8:16 | enter M | 1 | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | exit M | 1 | | 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: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 | @@ -637,9 +643,9 @@ | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 | 2 | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:18:9:18:22 | M2(...) | 2 | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | exit M2 | 4 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 14 | | 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: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 | @@ -649,35 +655,36 @@ | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | 1 | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | 1 | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | 2 | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | 2 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | enter C3 | 1 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 | 2 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | {...} | 4 | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | 5 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | 2 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | enter C4 | 1 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 | 2 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | {...} | 4 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | enter M1 | 1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | 1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:9:36:10 | exit M1 (abnormal) | 4 | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | exit M2 | 6 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | 2 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | {...} | 4 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | 2 | | 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: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 | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:16:9:16:31 | M2(...) | 2 | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | exit M2 | 5 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | 12 | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | 7 | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:27:19:29 | {...} | 3 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationA.cs:22:6:22:7 | exit ~C2 (abnormal) | 4 | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | 3 | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | 2 | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | 2 | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | {...} | 4 | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | {...} | 4 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | 2 | -| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | 5 | +| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | 7 | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | 2 | | NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:9:3:10 | exit M1 | 3 | | NullCoalescing.cs:3:28:3:28 | 0 | NullCoalescing.cs:3:28:3:28 | 0 | 1 | @@ -715,9 +722,10 @@ | 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:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial | 12 | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial | 12 | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | exit Patterns | 5 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 10 | +| 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 | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:8:18:8:23 | Int32 i1 | 8 | | Patterns.cs:8:13:8:23 | [false] ... is ... | Patterns.cs:8:13:8:23 | [false] ... is ... | 1 | | Patterns.cs:8:13:8:23 | [true] ... is ... | Patterns.cs:8:13:8:23 | [true] ... is ... | 1 | @@ -811,7 +819,7 @@ | Patterns.cs:95:29:95:38 | [no-match] ... or ... | Patterns.cs:95:29:95:38 | [no-match] ... or ... | 1 | | Patterns.cs:95:36:95:38 | access to constant B | Patterns.cs:95:36:95:38 | access to constant B | 1 | | Patterns.cs:96:9:98:9 | {...} | Patterns.cs:97:13:97:38 | call to method WriteLine | 4 | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | exit PostDominance | 5 | +| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | exit PostDominance | 7 | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | exit M1 | 7 | | PostDominance.cs:10:10:10:11 | enter M2 | PostDominance.cs:12:18:12:21 | null | 5 | | PostDominance.cs:10:10:10:11 | exit M2 (normal) | PostDominance.cs:10:10:10:11 | exit M2 | 2 | @@ -825,11 +833,11 @@ | PostDominance.cs:19:13:19:21 | [true] ... is ... | PostDominance.cs:19:13:19:21 | [true] ... is ... | 1 | | PostDominance.cs:20:45:20:53 | nameof(...) | PostDominance.cs:17:10:17:11 | exit M3 (abnormal) | 4 | | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | exit M3 (normal) | 4 | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | exit Qualifiers | 5 | +| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | exit Qualifiers | 7 | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | exit Method | 4 | | Qualifiers.cs:8:23:8:34 | enter StaticMethod | Qualifiers.cs:8:23:8:34 | exit StaticMethod | 4 | | Qualifiers.cs:10:10:10:10 | enter M | Qualifiers.cs:10:10:10:10 | exit M | 58 | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | exit Switch | 5 | +| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | exit Switch | 7 | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | exit M1 | 6 | | Switch.cs:10:10:10:11 | enter M2 | Switch.cs:14:18:14:20 | "a" | 6 | | Switch.cs:10:10:10:11 | exit M2 | Switch.cs:10:10:10:11 | exit M2 | 1 | @@ -947,20 +955,20 @@ | Switch.cs:171:13:171:19 | case ...: | Switch.cs:171:18:171:18 | 3 | 2 | | Switch.cs:172:17:172:46 | ...; | Switch.cs:173:17:173:22 | break; | 4 | | Switch.cs:174:13:174:20 | default: | Switch.cs:176:17:176:22 | break; | 5 | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | 5 | +| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | 7 | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:7:18:7:22 | Int32 j | 13 | | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | TypeAccesses.cs:7:13:7:22 | [false] ... is ... | 1 | | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | TypeAccesses.cs:7:13:7:22 | [true] ... is ... | 1 | | TypeAccesses.cs:7:25:7:25 | ; | TypeAccesses.cs:7:25:7:25 | ; | 1 | | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:3:10:3:10 | exit M | 5 | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | exit VarDecls | 5 | +| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | exit VarDecls | 7 | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | exit M1 | 19 | | VarDecls.cs:13:12:13:13 | enter M2 | VarDecls.cs:13:12:13:13 | exit M2 | 13 | | VarDecls.cs:19:7:19:8 | enter M3 | VarDecls.cs:25:20:25:20 | access to parameter b | 11 | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:19:7:19:8 | exit M3 | 4 | | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:24:25:24 | access to local variable x | 1 | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:28:25:28 | access to local variable y | 1 | -| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | exit C | 5 | +| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | exit C | 7 | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | exit Dispose | 4 | | cflow.cs:5:17:5:20 | enter Main | cflow.cs:11:13:11:17 | ... > ... | 15 | | cflow.cs:5:17:5:20 | exit Main (normal) | cflow.cs:5:17:5:20 | exit Main | 2 | @@ -1034,7 +1042,7 @@ | 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 | 9 | +| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 11 | | 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 | @@ -1132,17 +1140,17 @@ | cflow.cs:264:25:264:25 | access to local variable i | cflow.cs:264:25:264:30 | ... < ... | 3 | | cflow.cs:265:9:267:9 | {...} | cflow.cs:264:33:264:35 | ...++ | 5 | | cflow.cs:268:9:276:9 | try {...} ... | cflow.cs:275:13:275:41 | call to method WriteLine | 7 | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub | 5 | +| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub | 7 | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | exit ControlFlowSub | 5 | | cflow.cs:286:5:286:18 | enter ControlFlowSub | cflow.cs:286:5:286:18 | exit ControlFlowSub | 7 | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | exit DelegateCall | 5 | +| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | exit DelegateCall | 7 | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | exit M | 6 | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | exit NegationInConstructor | 5 | +| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | exit NegationInConstructor | 7 | | cflow.cs:298:10:298:10 | enter M | cflow.cs:300:46:300:50 | ... > ... | 7 | | cflow.cs:300:44:300:51 | [false] !... | cflow.cs:300:44:300:51 | [false] !... | 1 | | cflow.cs:300:44:300:51 | [true] !... | cflow.cs:300:44:300:51 | [true] !... | 1 | | cflow.cs:300:44:300:64 | ... && ... | cflow.cs:298:10:298:10 | exit M | 5 | | cflow.cs:300:56:300:56 | access to parameter s | cflow.cs:300:56:300:64 | ... != ... | 3 | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | exit LambdaGetter | 5 | +| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | exit LambdaGetter | 7 | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | exit (...) => ... | 9 | | cflow.cs:306:60:310:5 | enter get__getter | cflow.cs:306:60:310:5 | exit get__getter | 4 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index f5368b5c7e9..8240e61a419 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -1,7 +1,9 @@ dominance | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | call to method | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:23:5:25 | exit get_Item | @@ -305,8 +307,10 @@ dominance | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:78:73:81 | dynamic access to element | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | {...} | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | call to method | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:27:3:27 | 0 | | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:11:3:12 | exit M1 | @@ -337,8 +341,10 @@ dominance | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:48:9:48 | 3 | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:43:9:50 | { ..., ... } | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | {...} | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | this access | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | exit AssertTests | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | call to method | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | exit AssertTests (normal) | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:8:5:12:5 | {...} | | Assert.cs:8:5:12:5 | {...} | Assert.cs:9:9:9:33 | ... ...; | @@ -708,8 +714,10 @@ dominance | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | {...} | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | exit Assignments | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | call to method | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | exit Assignments (normal) | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:3:10:3:10 | exit M | @@ -753,8 +761,10 @@ dominance | 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 ...; | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | 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 constructor Object | +| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | exit BreakInTry | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | call to method | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | @@ -839,8 +849,10 @@ dominance | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:68:21:68:26 | break; | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | call to method | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:5:9:5:15 | exit Default | @@ -863,8 +875,10 @@ dominance | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:9:22:25 | return ...; | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | {...} | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | call to method | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:29:5:41:5 | {...} | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | @@ -884,8 +898,10 @@ dominance | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | {...} | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | call to method | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | @@ -963,8 +979,10 @@ dominance | 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 | ... + ... | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | -| Conditions.cs:1:7:1:16 | enter Conditions | 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 constructor Object | +| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | exit Conditions | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | call to method | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | exit Conditions (normal) | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | @@ -1266,8 +1284,10 @@ dominance | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:38:149:47 | $"..." | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:44:149:46 | {...} | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | {...} | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | exit ExitMethods | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | call to method | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:9:5:12:5 | {...} | | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:8:10:8:11 | exit M1 | @@ -1464,8 +1484,10 @@ dominance | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | delegate creation of type Func | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:9:25:33 | call to method ToBool | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | {...} | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | this access | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | exit Finally | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | call to method | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | exit Finally (normal) | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:8:5:17:5 | {...} | | Finally.cs:8:5:17:5 | {...} | Finally.cs:9:9:16:9 | try {...} ... | @@ -1679,16 +1701,22 @@ dominance | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | this access | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | call to method | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | {...} | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | this access | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | exit ExceptionB | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | call to method | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | {...} | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | this access | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | exit ExceptionC | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | call to method | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:177:5:193:5 | {...} | | Finally.cs:177:5:193:5 | {...} | Finally.cs:178:9:192:9 | try {...} ... | @@ -1812,8 +1840,10 @@ dominance | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | call to method | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:7:5:10:5 | {...} | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | @@ -1865,38 +1895,33 @@ dominance | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:33:38:33 | Int32 y | | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:18:38:34 | (..., ...) | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:5:9:5:9 | this access | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | {...} | +| 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 | this access | Initializers.cs:5:13:5:13 | access to field H | -| 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: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: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:17 | ... = ... | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | -| 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 | 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 | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:8:20:8:22 | {...} | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:10:28:10:30 | {...} | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | exit (normal) | | Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | -| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | -| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:20:8:22 | {...} | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | this access | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:5:8:16 | exit Initializers | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | call to method | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | exit Initializers (normal) | -| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:28:10:30 | {...} | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:5:10:16 | exit Initializers | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | call to method | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | exit Initializers (normal) | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:13:5:16:5 | {...} | | Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:12:10:12:10 | exit M | @@ -1923,25 +1948,30 @@ dominance | 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:20:11:20:23 | call to constructor Object | Initializers.cs:22:23:22:23 | this access | -| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | call to constructor Object | +| 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 | +| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:20:11:20:23 | exit | | 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 | 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: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 | {...} | +| 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: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 | this access | Initializers.cs:28:17:28:17 | 2 | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:31:24:31:33 | {...} | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:35:27:35:40 | {...} | +| 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:17 | ... = ... | -| 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: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:17:31:20 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | +| 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 | this access | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | @@ -1955,9 +1985,11 @@ dominance | 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:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| 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 | 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) | @@ -1966,12 +1998,16 @@ dominance | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | 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 | enter IndexInitializers | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | this access | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | exit IndexInitializers | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | call to method | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | {...} | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | exit Compound | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | call to method | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | exit Compound (normal) | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:52:5:66:5 | {...} | | Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:51:10:51:13 | exit Test | @@ -2078,8 +2114,10 @@ dominance | 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 | ... = ... | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| 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 | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | call to method | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:8:5:13:5 | {...} | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | @@ -2275,9 +2313,11 @@ dominance | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | call to method | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:28:6:31 | null | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (abnormal) | @@ -2296,6 +2336,9 @@ dominance | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | throw ... | +| 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 | 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 | ... = ... | @@ -2317,9 +2360,11 @@ dominance | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:21:18:21 | 0 | | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | exit M2 | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:13:16:13:16 | this access | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:22:20:31 | {...} | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | this access | +| 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 | 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) | @@ -2338,20 +2383,23 @@ dominance | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | | MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:32:24:34 | ... = ... | | MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:34:24:34 | 0 | -| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:20:22:20:31 | {...} | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | access to property P | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | call to method | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | throw ... | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | call to method | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationB.cs:32:17:32:17 | 0 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:22:36:25 | null | @@ -2363,6 +2411,8 @@ dominance | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | throw ...; | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | call to method | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:34:4:34 | 1 | | MultiImplementationB.cs:4:27:4:35 | return ...; | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | @@ -2382,7 +2432,9 @@ dominance | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | throw ... | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:22:18:36 | {...} | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | call to method | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:30:18:33 | null | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | @@ -2395,14 +2447,19 @@ dominance | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | | MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | -| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:18:22:18:36 | {...} | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | access to property P | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | call to method | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | call to method | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | {...} | -| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | call to method | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:9:3:10 | exit M1 | @@ -2460,31 +2517,32 @@ dominance | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:9:17:24 | ... = ... | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | (...) ... | -| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationB.cs:3:16:3:16 | this access | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationA.cs:1:15:1:21 | exit | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:27:3:29 | {...} | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | this access | | 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 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | -| 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: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:20 | ... = ... | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | +| 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 | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | exit Partial | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | call to method | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:3:27:3:29 | {...} | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:4:22:4:24 | {...} | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:1:15:1:21 | exit (normal) | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | {...} | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | exit Patterns | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | call to method | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | exit Patterns (normal) | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:6:5:43:5 | {...} | | Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:5:10:5:11 | exit M1 | @@ -2683,8 +2741,10 @@ dominance | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:31:97:37 | "not C" | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:38 | call to method WriteLine | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | {...} | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | exit PostDominance | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | call to method | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:6:5:8:5 | {...} | | PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:5:10:5:11 | exit M1 | @@ -2718,8 +2778,10 @@ dominance | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:27:21:27 | access to parameter s | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:28 | call to method WriteLine | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | {...} | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | exit Qualifiers | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | call to method | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:28:7:31 | null | | Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:16:7:21 | exit Method | @@ -2785,8 +2847,10 @@ dominance | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:46 | call to method Method | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:9:30:46 | ... = ... | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | {...} | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | this access | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | exit Switch | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | call to method | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | exit Switch (normal) | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:6:5:8:5 | {...} | | Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:5:10:5:11 | exit M1 | @@ -3055,8 +3119,10 @@ dominance | Switch.cs:175:17:175:48 | ...; | Switch.cs:175:42:175:46 | "def" | | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:47 | call to method WriteLine | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | {...} | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | call to method | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:4:5:9:5 | {...} | | TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:3:10:3:10 | exit M | @@ -3078,8 +3144,10 @@ dominance | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:13:8:27 | Type t = ... | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | {...} | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | exit VarDecls | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | call to method | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:6:5:11:5 | {...} | | VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:5:18:5:19 | exit M1 | @@ -3127,8 +3195,10 @@ dominance | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:25:28:25:28 | access to local variable y | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:13:25:29 | return ...; | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | {...} | -| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | exit C | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | call to method | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | exit C (normal) | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:51:28:53 | {...} | | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:41:28:47 | exit Dispose | @@ -3397,8 +3467,10 @@ dominance | 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:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | call to constructor Object | +| 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 | 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) | @@ -3739,8 +3811,10 @@ dominance | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | this access | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | exit ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | call to method | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | @@ -3754,8 +3828,10 @@ dominance | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | {...} | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | this access | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | exit DelegateCall | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | call to method | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:38:291:38 | access to parameter f | | cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:12:291:12 | exit M | @@ -3763,8 +3839,10 @@ dominance | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | exit M (normal) | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:38:291:41 | delegate call | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:52:296:54 | {...} | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | this access | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:5:296:25 | exit NegationInConstructor | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | call to method | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | | cflow.cs:298:10:298:10 | enter M | cflow.cs:299:5:301:5 | {...} | | cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:298:10:298:10 | exit M | @@ -3782,8 +3860,10 @@ dominance | cflow.cs:300:61:300:64 | null | cflow.cs:300:56:300:64 | ... != ... | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | {...} | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | this access | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | exit LambdaGetter | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | call to method | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | exit get__getter (normal) | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:307:5:310:5 | {...} | @@ -3797,9 +3877,11 @@ dominance | cflow.cs:309:9:309:17 | return ...; | cflow.cs:306:60:310:5 | exit (...) => ... (normal) | | cflow.cs:309:16:309:16 | access to local variable x | cflow.cs:309:9:309:17 | return ...; | postDominance -| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to method | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | {...} | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | AccessorCalls.cs:5:23:5:25 | exit get_Item | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:30:5:30 | access to parameter i | @@ -4102,9 +4184,11 @@ postDominance | AccessorCalls.cs:73:78:73:78 | access to local variable d | AccessorCalls.cs:73:75:73:75 | 0 | | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:80:73:80 | 1 | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:78:73:78 | access to local variable d | -| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to method | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | {...} | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | ArrayCreation.cs:3:11:3:12 | exit M1 | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | @@ -4134,9 +4218,11 @@ postDominance | ArrayCreation.cs:9:43:9:50 | { ..., ... } | ArrayCreation.cs:9:48:9:48 | 3 | | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:33:9:40 | { ..., ... } | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:45:9:45 | 2 | -| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | enter AssertTests | +| Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | call to method | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | this access | | Assert.cs:5:7:5:17 | exit AssertTests | Assert.cs:5:7:5:17 | exit AssertTests (normal) | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | {...} | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | enter AssertTests | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | call to constructor Object | | Assert.cs:7:10:7:11 | exit M1 (normal) | Assert.cs:11:9:11:35 | call to method WriteLine | | Assert.cs:8:5:12:5 | {...} | Assert.cs:7:10:7:11 | enter M1 | @@ -4492,9 +4578,11 @@ postDominance | Assert.cs:140:29:140:30 | access to parameter b2 | Assert.cs:140:25:140:26 | access to parameter b1 | | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:29:140:30 | access to parameter b2 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | -| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | enter Assignments | +| Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to method | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:1:7:1:17 | exit Assignments | Assignments.cs:1:7:1:17 | exit Assignments (normal) | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | {...} | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | enter Assignments | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | call to constructor Object | | Assignments.cs:3:10:3:10 | exit M | Assignments.cs:3:10:3:10 | exit M (normal) | | Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:14:9:14:35 | ... += ... | @@ -4537,9 +4625,11 @@ 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 | {...} | -| BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | enter BreakInTry | +| 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) | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | {...} | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | enter BreakInTry | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:3:10:3:11 | exit M1 | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:15:17:15:28 | ... == ... | @@ -4620,9 +4710,11 @@ postDominance | BreakInTry.cs:67:21:67:23 | access to local variable arg | BreakInTry.cs:67:17:68:26 | if (...) ... | | BreakInTry.cs:67:21:67:31 | ... == ... | BreakInTry.cs:67:28:67:31 | null | | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:23 | access to local variable arg | -| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to method | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | {...} | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | CompileTimeOperators.cs:5:9:5:15 | exit Default | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:7:9:7:28 | return ...; | @@ -4644,9 +4736,11 @@ postDominance | CompileTimeOperators.cs:21:5:23:5 | {...} | CompileTimeOperators.cs:20:12:20:17 | enter Nameof | | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:21:5:23:5 | {...} | -| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to method | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | {...} | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | CompileTimeOperators.cs:28:10:28:10 | exit M (normal) | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:28:10:28:10 | enter M | @@ -4664,9 +4758,11 @@ postDominance | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | CompileTimeOperators.cs:40:32:40:36 | "End" | | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:9:40:11 | End: | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:38 | ...; | -| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to method | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | {...} | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | ConditionalAccess.cs:3:12:3:13 | exit M1 | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:26:3:26 | access to parameter i | @@ -4743,9 +4839,11 @@ postDominance | 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 | ... + ... | -| Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | enter Conditions | +| 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) | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | {...} | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | call to constructor Object | | Conditions.cs:3:10:3:19 | exit IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:7:13:7:16 | [false] !... | @@ -5040,9 +5138,11 @@ postDominance | Conditions.cs:149:40:149:43 | "b = " | Conditions.cs:149:13:149:49 | ...; | | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:45:149:45 | access to local variable s | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:40:149:43 | "b = " | -| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | enter ExitMethods | +| ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | call to method | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:6:7:6:17 | exit ExitMethods | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | {...} | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | enter ExitMethods | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | call to constructor Object | | ExitMethods.cs:8:10:8:11 | exit M1 | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:11:9:11:15 | return ...; | @@ -5231,9 +5331,11 @@ postDominance | Extensions.cs:25:9:25:34 | ...; | Extensions.cs:24:9:24:45 | call to method ToBool | | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:9:25:14 | "true" | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | access to method Parse | -| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | enter Finally | +| Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | call to method | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | this access | | Finally.cs:3:14:3:20 | exit Finally | Finally.cs:3:14:3:20 | exit Finally (normal) | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | {...} | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | enter Finally | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | call to constructor Object | | Finally.cs:7:10:7:11 | exit M1 (normal) | Finally.cs:15:13:15:40 | call to method WriteLine | | Finally.cs:8:5:17:5 | {...} | Finally.cs:7:10:7:11 | enter M1 | @@ -5433,17 +5535,23 @@ postDominance | Finally.cs:167:17:167:37 | call to method WriteLine | Finally.cs:167:35:167:36 | "" | | Finally.cs:167:17:167:38 | ...; | Finally.cs:166:13:168:13 | {...} | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:38 | ...; | -| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | enter ExceptionA | +| Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | call to method | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | this access | | Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | {...} | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | enter ExceptionA | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | call to constructor Exception | -| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | enter ExceptionB | +| Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | call to method | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | this access | | Finally.cs:173:11:173:20 | exit ExceptionB | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | {...} | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | enter ExceptionB | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | call to constructor Exception | -| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | enter ExceptionC | +| Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | call to method | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | this access | | Finally.cs:174:11:174:20 | exit ExceptionC | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | {...} | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | enter ExceptionC | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | call to constructor Exception | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:186:21:186:22 | access to parameter b2 | | Finally.cs:176:10:176:11 | exit M9 (normal) | Finally.cs:190:21:190:22 | access to parameter b1 | @@ -5560,9 +5668,11 @@ postDominance | Finally.cs:272:13:272:18 | ... = ... | Finally.cs:272:13:272:18 | ... + ... | | Finally.cs:272:13:272:19 | ...; | Finally.cs:271:13:271:34 | call to method WriteLine | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:13 | access to parameter i | -| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | enter Foreach | +| Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to method | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | {...} | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | enter Foreach | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | call to constructor Object | | Foreach.cs:6:10:6:11 | exit M1 | Foreach.cs:6:10:6:11 | exit M1 (normal) | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | @@ -5614,39 +5724,34 @@ postDominance | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:37:5:40:5 | {...} | | Foreach.cs:39:11:39:11 | ; | Foreach.cs:38:18:38:34 | (..., ...) | +| Initializers.cs:3:7:3:18 | exit | Initializers.cs:3:7:3:18 | exit (normal) | +| Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:6:25:6:31 | ... = ... | | 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 | this access | Initializers.cs:8:5:8:16 | call to constructor Object | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:10:5:10:16 | call to constructor Object | -| Initializers.cs:5:9:5:17 | ... = ... | 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:13:5:13 | access to field H | Initializers.cs:5:9:5:9 | this access | -| 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: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 | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:13 | access to field H | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:27:6:31 | ... + ... | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:27:6:31 | ... + ... | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:5:9:5:17 | ... = ... | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:5:9:5:17 | ... = ... | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:9:6:9 | access to property G | | Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:6:9:6:9 | access to property G | | Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:9:6:9 | this access | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:9:6:9 | this access | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:27 | access to field H | -| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | enter Initializers | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | call to method | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | this access | | Initializers.cs:8:5:8:16 | exit Initializers | Initializers.cs:8:5:8:16 | exit Initializers (normal) | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:20:8:22 | {...} | -| Initializers.cs:8:20:8:22 | {...} | Initializers.cs:6:25:6:31 | ... = ... | -| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | enter Initializers | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | enter Initializers | +| Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | call to method | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:10:5:10:16 | exit Initializers | Initializers.cs:10:5:10:16 | exit Initializers (normal) | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:28:10:30 | {...} | -| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:6:25:6:31 | ... = ... | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | enter Initializers | +| Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | call to constructor Object | | Initializers.cs:12:10:12:10 | exit M | Initializers.cs:12:10:12:10 | exit M (normal) | | Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:12:10:12:10 | enter M | @@ -5672,26 +5777,31 @@ postDominance | 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: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 | enter NoConstructor | +| 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 | +| Initializers.cs:20:11:20:23 | exit | Initializers.cs:20:11:20:23 | exit (normal) | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:23:23:23:27 | ... = ... | | Initializers.cs:20:11:20:23 | exit NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | {...} | -| Initializers.cs:20:11:20:23 | {...} | Initializers.cs:23:23:23:27 | ... = ... | -| Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | call to constructor Object | +| 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 | 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:27:22:27 | 0 | Initializers.cs:22:23:22:23 | this access | | 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:27:23:27 | 1 | Initializers.cs:23:23:23:23 | this access | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:17:28:17 | 2 | +| 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 | 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:17:28:17 | 2 | Initializers.cs:28:13:28:13 | this access | -| 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) | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:26:31:30 | ... = ... | -| Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | enter Sub | -| Initializers.cs:31:24:31:33 | {...} | Initializers.cs:28:13:28:17 | ... = ... | +| 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 | 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:31 | ...; | Initializers.cs:31:24:31:33 | {...} | @@ -5704,23 +5814,29 @@ postDominance | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:35:33:35 | access to parameter 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 | enter Sub | +| Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to method | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:9:35:11 | exit Sub | Initializers.cs:35:9:35:11 | exit Sub (normal) | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:29:35:37 | ... = ... | -| Initializers.cs:35:27:35:40 | {...} | Initializers.cs:28:13:28:17 | ... = ... | +| 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 | 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: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 | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:33 | access to parameter i | -| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | enter IndexInitializers | +| Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | call to method | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | this access | | Initializers.cs:39:7:39:23 | exit IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | {...} | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | enter IndexInitializers | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | call to constructor Object | -| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | enter Compound | +| Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | call to method | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:41:11:41:18 | exit Compound | Initializers.cs:41:11:41:18 | exit Compound (normal) | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | {...} | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | enter Compound | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | call to constructor Object | | Initializers.cs:51:10:51:13 | exit Test | Initializers.cs:51:10:51:13 | exit Test (normal) | | Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:57:13:65:9 | Compound compound = ... | @@ -5826,9 +5942,11 @@ postDominance | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:54:64:54 | 0 | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:50 | access to parameter i | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:50:64:54 | ... + ... | -| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to method | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | {...} | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | LoopUnrolling.cs:7:10:7:11 | exit M1 | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:10:13:10:19 | return ...; | @@ -6021,6 +6139,8 @@ postDominance | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:98:9:100:9 | {...} | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:33 | ...; | +| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to method | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:4:7:4:8 | exit C1 | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | {...} | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationB.cs:1:7:1:8 | {...} | @@ -6039,7 +6159,9 @@ postDominance | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | MultiImplementationA.cs:8:23:8:32 | throw ... | | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:29:8:32 | null | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| 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: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 | @@ -6060,10 +6182,12 @@ postDominance | MultiImplementationA.cs:18:9:18:22 | exit M2 | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:21:18:21 | 0 | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | enter M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | enter C2 | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to method | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | MultiImplementationB.cs:18:24:18:34 | throw ...; | | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:24:20:28 | ... = ... | -| MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:24:32:24:34 | ... = ... | +| 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 | 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:29 | ...; | MultiImplementationA.cs:20:22:20:31 | {...} | @@ -6083,6 +6207,8 @@ postDominance | MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:13:16:13:20 | ... = ... | | MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:16:24:16 | access to property P | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | this access | +| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to method | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:28:7:28:8 | exit C3 | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | {...} | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationB.cs:25:7:25:8 | {...} | @@ -6091,6 +6217,8 @@ postDominance | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:28:30:37 | throw ... | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | +| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to method | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:34:15:34:16 | exit C4 | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | {...} | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationB.cs:30:15:30:16 | {...} | @@ -6104,6 +6232,8 @@ postDominance | MultiImplementationA.cs:37:14:37:28 | {...} | MultiImplementationA.cs:37:9:37:10 | enter M2 | | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:22:37:25 | null | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:14:37:28 | {...} | +| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to method | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | @@ -6111,7 +6241,6 @@ 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:16 | this access | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:20:11:20 | 1 | | 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 | @@ -6122,7 +6251,9 @@ postDominance | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:21:16:30 | throw ... | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:27:16:30 | null | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:9:16:31 | enter M2 | -| MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:22:32:22:34 | ... = ... | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to method | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | this access | +| MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationB.cs:18:30:18:33 | null | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:22:18:36 | {...} | | MultiImplementationB.cs:19:19:19:22 | call to constructor C2 | MultiImplementationB.cs:19:24:19:24 | 1 | @@ -6134,12 +6265,18 @@ postDominance | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:11:16:11:20 | ... = ... | | MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:16:22:16 | access to property P | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | this access | +| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to method | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to method | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | enter M1 | -| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to method | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | {...} | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | NullCoalescing.cs:3:9:3:10 | exit M1 | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:23:3:28 | ... ?? ... | @@ -6195,31 +6332,32 @@ postDominance | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:19:17:19 | access to parameter i | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:9:17:25 | ...; | -| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | enter Partial | +| PartialImplementationA.cs:1:15:1:21 | exit | PartialImplementationA.cs:1:15:1:21 | exit (normal) | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationB.cs:5:32:5:34 | ... = ... | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to method | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | this access | | PartialImplementationA.cs:3:12:3:18 | exit Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:27:3:29 | {...} | -| PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationB.cs:5:32:5:34 | ... = ... | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:20:3:20 | 0 | +| 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 | 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:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | this access | -| 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 | enter Partial | +| 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 | | PartialImplementationB.cs:4:12:4:18 | exit Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:22:4:24 | {...} | -| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:5:32:5:34 | ... = ... | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:34:5:34 | 0 | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | enter Partial | +| PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:34:5:34 | 0 | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:3:16:3:20 | ... = ... | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:16:5:16 | access to property P | | PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:16:5:16 | access to property P | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | this access | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | this access | -| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | enter Patterns | +| Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to method | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:3:7:3:14 | exit Patterns | Patterns.cs:3:7:3:14 | exit Patterns (normal) | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | {...} | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | enter Patterns | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | call to constructor Object | | Patterns.cs:5:10:5:11 | exit M1 | Patterns.cs:5:10:5:11 | exit M1 (normal) | | Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:40:17:40:17 | access to local variable o | @@ -6404,9 +6542,11 @@ postDominance | Patterns.cs:97:13:97:38 | call to method WriteLine | Patterns.cs:97:31:97:37 | "not C" | | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:96:9:98:9 | {...} | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:39 | ...; | -| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | enter PostDominance | +| PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | call to method | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:3:7:3:19 | exit PostDominance | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | {...} | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | enter PostDominance | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | call to constructor Object | | PostDominance.cs:5:10:5:11 | exit M1 | PostDominance.cs:5:10:5:11 | exit M1 (normal) | | PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:7:9:7:28 | call to method WriteLine | @@ -6437,9 +6577,11 @@ postDominance | PostDominance.cs:21:9:21:28 | call to method WriteLine | PostDominance.cs:21:27:21:27 | access to parameter s | | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:19:13:19:21 | [false] ... is ... | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:29 | ...; | -| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | enter Qualifiers | +| Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | call to method | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:1:7:1:16 | exit Qualifiers | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | {...} | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | enter Qualifiers | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | call to constructor Object | | Qualifiers.cs:7:16:7:21 | exit Method | Qualifiers.cs:7:16:7:21 | exit Method (normal) | | Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:28:7:31 | null | @@ -6504,9 +6646,11 @@ postDominance | Qualifiers.cs:30:9:30:47 | ...; | Qualifiers.cs:29:9:29:46 | ... = ... | | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:9:30:47 | ...; | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | -| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | enter Switch | +| Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | call to method | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | this access | | Switch.cs:3:7:3:12 | exit Switch | Switch.cs:3:7:3:12 | exit Switch (normal) | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | {...} | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | enter Switch | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | call to constructor Object | | Switch.cs:5:10:5:11 | exit M1 | Switch.cs:5:10:5:11 | exit M1 (normal) | | Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:7:17:7:17 | access to parameter o | @@ -6756,9 +6900,11 @@ postDominance | Switch.cs:175:17:175:48 | ...; | Switch.cs:174:13:174:20 | default: | | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:48 | ...; | | Switch.cs:176:17:176:22 | break; | Switch.cs:175:17:175:47 | call to method WriteLine | -| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to method | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | {...} | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | TypeAccesses.cs:3:10:3:10 | exit M | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:8:13:8:27 | Type t = ... | @@ -6779,9 +6925,11 @@ postDominance | TypeAccesses.cs:8:9:8:28 | ... ...; | TypeAccesses.cs:7:25:7:25 | ; | | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:17:8:27 | typeof(...) | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:9:8:28 | ... ...; | -| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | enter VarDecls | +| VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | call to method | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:3:7:3:14 | exit VarDecls | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | {...} | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | enter VarDecls | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | call to constructor Object | | VarDecls.cs:5:18:5:19 | exit M1 | VarDecls.cs:5:18:5:19 | exit M1 (normal) | | VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:9:13:9:29 | return ...; | @@ -6828,9 +6976,11 @@ postDominance | VarDecls.cs:25:20:25:20 | access to parameter b | VarDecls.cs:24:31:24:41 | C y = ... | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:24:25:24 | access to local variable x | | VarDecls.cs:25:20:25:28 | ... ? ... : ... | VarDecls.cs:25:28:25:28 | access to local variable y | -| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | enter C | +| VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | call to method | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:11:28:11 | exit C | VarDecls.cs:28:11:28:11 | exit C (normal) | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | {...} | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | enter C | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | call to constructor Object | | VarDecls.cs:28:41:28:47 | exit Dispose | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:51:28:53 | {...} | @@ -7087,9 +7237,11 @@ postDominance | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:76:127:80 | access to parameter value | | 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 | enter ControlFlow | +| cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to method | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | this access | | cflow.cs:129:5:129:15 | exit ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | 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 | this access | cflow.cs:131:9:131:18 | ...; | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:17:131:17 | access to parameter s | @@ -7421,9 +7573,11 @@ postDominance | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | | cflow.cs:275:13:275:42 | ...; | cflow.cs:274:9:276:9 | {...} | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:42 | ...; | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | this access | | cflow.cs:282:5:282:18 | exit ControlFlowSub | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:31:282:33 | {...} | -| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | enter ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | enter ControlFlowSub | +| cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | call to method | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | cflow.cs:284:5:284:18 | exit ControlFlowSub | cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | | cflow.cs:284:5:284:18 | exit ControlFlowSub (normal) | cflow.cs:284:39:284:41 | {...} | @@ -7435,18 +7589,22 @@ postDominance | cflow.cs:286:34:286:34 | access to parameter i | cflow.cs:286:5:286:18 | enter ControlFlowSub | | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:34 | access to parameter i | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | -| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | enter DelegateCall | +| cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | call to method | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | this access | | cflow.cs:289:7:289:18 | exit DelegateCall | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | {...} | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | enter DelegateCall | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | call to constructor Object | | cflow.cs:291:12:291:12 | exit M | cflow.cs:291:12:291:12 | exit M (normal) | | cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:38:291:41 | delegate call | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:12:291:12 | enter M | | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:40:291:40 | 0 | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:38:291:38 | access to parameter f | -| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | enter NegationInConstructor | +| cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | call to method | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | this access | | cflow.cs:296:5:296:25 | exit NegationInConstructor | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:52:296:54 | {...} | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | enter NegationInConstructor | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | call to constructor Object | | cflow.cs:298:10:298:10 | exit M | cflow.cs:298:10:298:10 | exit M (normal) | | cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | @@ -7463,9 +7621,11 @@ postDominance | cflow.cs:300:56:300:64 | ... != ... | cflow.cs:300:61:300:64 | null | | cflow.cs:300:61:300:64 | null | cflow.cs:300:56:300:56 | access to parameter s | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:44:300:64 | ... && ... | -| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | enter LambdaGetter | +| cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | call to method | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | this access | | cflow.cs:304:7:304:18 | exit LambdaGetter | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | {...} | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | enter LambdaGetter | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | call to constructor Object | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | enter get__getter | | cflow.cs:306:60:310:5 | exit (...) => ... | cflow.cs:306:60:310:5 | exit (...) => ... (normal) | @@ -9459,12 +9619,15 @@ blockDominance | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:26:38:26 | String x | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | enter | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | enter Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | enter Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | enter Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | enter M | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | enter H | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | enter | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | enter NoConstructor | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | enter | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | enter Sub | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | enter Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | enter Sub | @@ -9619,12 +9782,12 @@ blockDominance | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:28:6:31 | null | @@ -9649,6 +9812,12 @@ blockDominance | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationB.cs:5:23:5:23 | 2 | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | exit M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:29:8:32 | null | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | exit (normal) | +| 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 (normal) | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | 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 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | @@ -9674,12 +9843,12 @@ blockDominance | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:17:5:19:5 | {...} | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | enter M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | @@ -9698,19 +9867,19 @@ blockDominance | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationB.cs:21:56:21:59 | null | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | enter C3 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | enter C4 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | enter M1 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:14:36:28 | {...} | @@ -9718,22 +9887,23 @@ blockDominance | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | enter M2 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationB.cs:4:43:4:45 | {...} | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:40:13:54 | {...} | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | enter M2 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:56:21:59 | null | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:9:3:10 | enter M1 | @@ -9820,6 +9990,7 @@ blockDominance | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | enter | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | enter Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | enter Partial | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | enter Patterns | @@ -13132,12 +13303,15 @@ postBlockDominance | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:26:38:26 | String x | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:38:26:38:26 | String x | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | enter | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | enter Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | enter Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | enter Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | enter M | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | enter H | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | enter | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | enter NoConstructor | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | enter | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | enter Sub | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | enter Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | enter Sub | @@ -13282,12 +13456,12 @@ postBlockDominance | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:97:22:97:22 | String x | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:97:22:97:22 | String x | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | enter C1 | -| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | enter C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | -| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationB.cs:1:7:1:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | @@ -13300,6 +13474,12 @@ postBlockDominance | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:16:8:16 | enter M | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | exit M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:29:8:32 | null | +| MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | enter | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit (normal) | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationB.cs:11:16:11:16 | this access | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | 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 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | @@ -13321,10 +13501,10 @@ postBlockDominance | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:17:5:19:5 | {...} | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | enter M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | enter C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | enter C2 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | @@ -13339,24 +13519,24 @@ postBlockDominance | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:50:23:53 | null | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | enter C3 | -| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | enter C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | -| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | enter C4 | -| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | enter C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | -| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationB.cs:30:15:30:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | enter M1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | exit M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | enter M2 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | enter get_P2 | @@ -13365,17 +13545,18 @@ postBlockDominance | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationB.cs:4:43:4:45 | {...} | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | enter M | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationB.cs:13:40:13:54 | {...} | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | enter M2 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:56:21:59 | null | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | enter M1 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | @@ -13465,6 +13646,7 @@ postBlockDominance | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:15:31:15:31 | 0 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:16:17:16:25 | ... ?? ... | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | enter | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | enter Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | enter Partial | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | enter Patterns | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 4a4631e454d..14dcdb56b26 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -1,8 +1,10 @@ nodeEnclosing | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | AccessorCalls | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | AccessorCalls | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:23:5:25 | get_Item | | AccessorCalls.cs:5:23:5:25 | exit get_Item | AccessorCalls.cs:5:23:5:25 | get_Item | @@ -319,9 +321,11 @@ nodeEnclosing | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:66:10:66:11 | M9 | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:66:10:66:11 | M9 | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | ArrayCreation | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | ArrayCreation | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | M1 | | ArrayCreation.cs:3:11:3:12 | exit M1 | ArrayCreation.cs:3:11:3:12 | M1 | @@ -356,9 +360,11 @@ nodeEnclosing | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:12:9:13 | M4 | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:12:9:13 | M4 | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | exit AssertTests | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | AssertTests | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | AssertTests | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:7:10:7:11 | M1 | | Assert.cs:7:10:7:11 | exit M1 | Assert.cs:7:10:7:11 | M1 | @@ -777,9 +783,11 @@ nodeEnclosing | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:138:10:138:12 | M13 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | M13 | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | exit Assignments | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | Assignments | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | Assignments | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | M | | Assignments.cs:3:10:3:10 | exit M | Assignments.cs:3:10:3:10 | M | @@ -826,9 +834,11 @@ nodeEnclosing | 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 | + | | 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 | | BreakInTry.cs:1:7:1:16 | exit BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | BreakInTry | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | {...} | 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 | BreakInTry.cs:3:10:3:11 | M1 | @@ -917,9 +927,11 @@ nodeEnclosing | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:56:10:56:11 | M4 | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | M4 | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:5:9:5:15 | Default | | CompileTimeOperators.cs:5:9:5:15 | exit Default | CompileTimeOperators.cs:5:9:5:15 | Default | @@ -946,9 +958,11 @@ nodeEnclosing | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | Nameof | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:20:12:20:17 | Nameof | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:28:10:28:10 | exit M | CompileTimeOperators.cs:28:10:28:10 | M | @@ -970,9 +984,11 @@ nodeEnclosing | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:28:10:28:10 | M | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:28:10:28:10 | M | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:12:3:13 | M1 | | ConditionalAccess.cs:3:12:3:13 | exit M1 | ConditionalAccess.cs:3:12:3:13 | M1 | @@ -1064,9 +1080,11 @@ nodeEnclosing | 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 | | 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 | | Conditions.cs:1:7:1:16 | exit Conditions | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | Conditions | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | {...} | 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 | Conditions.cs:3:10:3:19 | IncrOrDecr | @@ -1384,9 +1402,11 @@ nodeEnclosing | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:143:10:143:12 | M11 | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:143:10:143:12 | M11 | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | exit ExitMethods | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | ExitMethods | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | ExitMethods | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:8:10:8:11 | M1 | | ExitMethods.cs:8:10:8:11 | exit M1 | ExitMethods.cs:8:10:8:11 | M1 | @@ -1616,9 +1636,11 @@ nodeEnclosing | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:20:17:20:20 | Main | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:20:17:20:20 | Main | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | exit Finally | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | Finally | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | Finally | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | Finally | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:7:10:7:11 | M1 | | Finally.cs:7:10:7:11 | exit M1 | Finally.cs:7:10:7:11 | M1 | @@ -1852,19 +1874,25 @@ nodeEnclosing | Finally.cs:167:17:167:38 | ...; | Finally.cs:147:10:147:11 | M8 | | Finally.cs:167:35:167:36 | "" | Finally.cs:147:10:147:11 | M8 | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | exit ExceptionA | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | ExceptionA | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | ExceptionA | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | exit ExceptionB | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | ExceptionB | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | ExceptionB | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | exit ExceptionC | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | ExceptionC | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | ExceptionC | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:176:10:176:11 | M9 | | Finally.cs:176:10:176:11 | exit M9 | Finally.cs:176:10:176:11 | M9 | @@ -1997,9 +2025,11 @@ nodeEnclosing | Finally.cs:272:13:272:19 | ...; | Finally.cs:263:10:263:12 | M13 | | Finally.cs:272:18:272:18 | 3 | Finally.cs:263:10:263:12 | M13 | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | exit Foreach | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | Foreach | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | Foreach | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:6:10:6:11 | M1 | | Foreach.cs:6:10:6:11 | exit M1 | Foreach.cs:6:10:6:11 | M1 | @@ -2058,41 +2088,37 @@ nodeEnclosing | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:39:11:39:11 | ; | Foreach.cs:36:10:36:11 | M6 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:3:7:3:18 | exit | Initializers.cs:3:7:3:18 | | +| Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | | | 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 | this access | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:9:5:9 | this access | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:10:5:10:16 | Initializers | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:8:5:8:16 | Initializers | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:10:5:10:16 | Initializers | +| 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 | | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:5:17:5:17 | 1 | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:9:6:9 | this access | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:3:7:3:18 | | +| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:3:7:3:18 | | | Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:5:8:16 | exit Initializers | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:5:8:16 | Initializers | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:5:10:16 | exit Initializers | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:5:10:16 | Initializers | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | M | | Initializers.cs:12:10:12:10 | exit M | Initializers.cs:12:10:12:10 | M | @@ -2117,25 +2143,32 @@ nodeEnclosing | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:12:10:12:10 | M | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:20:11:20:23 | exit | Initializers.cs:20:11:20:23 | | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:20:11:20:23 | | | Initializers.cs:20:11:20:23 | exit NoConstructor | Initializers.cs:20:11:20:23 | NoConstructor | | 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 | this access | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:23:23:23:23 | this access | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:20:11:20:23 | NoConstructor | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:35:9:35:11 | Sub | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:35:9:35:11 | Sub | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:31:9:31:11 | Sub | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:35:9:35:11 | Sub | +| 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 | 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 | 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 | | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:9:31:11 | exit Sub | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | Sub | +| 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 | this access | Initializers.cs:31:9:31:11 | Sub | @@ -2152,9 +2185,11 @@ nodeEnclosing | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | exit Sub | Initializers.cs:35:9:35:11 | Sub | | 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 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | Sub | @@ -2163,14 +2198,18 @@ nodeEnclosing | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | exit IndexInitializers | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | IndexInitializers | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | IndexInitializers | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | exit Compound | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | Compound | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | Compound | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:51:10:51:13 | exit Test | Initializers.cs:51:10:51:13 | Test | @@ -2278,9 +2317,11 @@ nodeEnclosing | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:51:10:51:13 | Test | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:7:10:7:11 | M1 | | LoopUnrolling.cs:7:10:7:11 | exit M1 | LoopUnrolling.cs:7:10:7:11 | M1 | @@ -2489,9 +2530,11 @@ nodeEnclosing | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:94:10:94:12 | M11 | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | @@ -2519,9 +2562,12 @@ nodeEnclosing | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | M | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:20:12:20:13 | C2 | +| 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 | 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 | | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | @@ -2548,10 +2594,12 @@ nodeEnclosing | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | M2 | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | M2 | | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | MultiImplementationA.cs:20:12:20:13 | C2 | | 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 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | @@ -2573,14 +2621,16 @@ nodeEnclosing | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (abnormal) | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | get_P3 | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | MultiImplementationA.cs:30:21:30:23 | get_P3 | @@ -2588,9 +2638,11 @@ nodeEnclosing | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | get_P3 | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:21:30:23 | get_P3 | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | M1 | @@ -2606,6 +2658,8 @@ nodeEnclosing | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | M2 | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:9:37:10 | M2 | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | get_P2 | @@ -2613,9 +2667,9 @@ 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 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationA.cs:20:12:20:13 | C2 | +| 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 | | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | get_Item | @@ -2630,6 +2684,8 @@ nodeEnclosing | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | M2 | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:9:16:31 | M2 | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationA.cs:20:12:20:13 | C2 | @@ -2641,19 +2697,25 @@ nodeEnclosing | MultiImplementationB.cs:20:19:20:22 | null | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationB.cs:21:50:21:59 | throw ... | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | -| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | M1 | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | NullCoalescing | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:9:3:10 | M1 | | NullCoalescing.cs:3:9:3:10 | exit M1 | NullCoalescing.cs:3:9:3:10 | M1 | @@ -2722,34 +2784,36 @@ nodeEnclosing | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:13:10:13:11 | M6 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationA.cs:1:15:1:21 | exit | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | exit Partial | PartialImplementationA.cs:3:12:3:18 | Partial | | 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 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:4:12:4:18 | Partial | +| 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 | | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | exit Partial | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | Partial | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:4:12:4:18 | Partial | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationA.cs:3:12:3:18 | Partial | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:4:12:4:18 | Partial | +| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:1:15:1:21 | | +| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationA.cs:1:15:1:21 | | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | exit Patterns | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | Patterns | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | Patterns | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:5:10:5:11 | M1 | | Patterns.cs:5:10:5:11 | exit M1 | Patterns.cs:5:10:5:11 | M1 | @@ -2966,9 +3030,11 @@ nodeEnclosing | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:93:17:93:19 | M10 | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:93:17:93:19 | M10 | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | exit PostDominance | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | PostDominance | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | PostDominance | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:5:10:5:11 | M1 | | PostDominance.cs:5:10:5:11 | exit M1 | PostDominance.cs:5:10:5:11 | M1 | @@ -3007,9 +3073,11 @@ nodeEnclosing | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:17:10:17:11 | M3 | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:17:10:17:11 | M3 | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | exit Qualifiers | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | Qualifiers | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | Qualifiers | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:16:7:21 | Method | | Qualifiers.cs:7:16:7:21 | exit Method | Qualifiers.cs:7:16:7:21 | Method | @@ -3078,9 +3146,11 @@ nodeEnclosing | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:10:10:10:10 | M | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:10:10:10:10 | M | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | exit Switch | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | Switch | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | Switch | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | Switch | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:5:10:5:11 | M1 | | Switch.cs:5:10:5:11 | exit M1 | Switch.cs:5:10:5:11 | M1 | @@ -3385,9 +3455,11 @@ nodeEnclosing | Switch.cs:175:42:175:46 | "def" | Switch.cs:163:10:163:12 | M16 | | Switch.cs:176:17:176:22 | break; | Switch.cs:163:10:163:12 | M16 | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | TypeAccesses | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | TypeAccesses | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:3:10:3:10 | exit M | TypeAccesses.cs:3:10:3:10 | M | @@ -3411,9 +3483,11 @@ nodeEnclosing | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | M | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:3:10:3:10 | M | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | exit VarDecls | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | VarDecls | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | VarDecls | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:5:18:5:19 | M1 | | VarDecls.cs:5:18:5:19 | exit M1 | VarDecls.cs:5:18:5:19 | M1 | @@ -3465,9 +3539,11 @@ nodeEnclosing | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:19:7:19:8 | M3 | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | exit C | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | C | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | C | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:41:28:47 | Dispose | | VarDecls.cs:28:41:28:47 | exit Dispose | VarDecls.cs:28:41:28:47 | Dispose | @@ -3753,9 +3829,11 @@ nodeEnclosing | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | exit ControlFlow | cflow.cs:129:5:129:15 | ControlFlow | | 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 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | ControlFlow | @@ -4121,9 +4199,11 @@ nodeEnclosing | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | Yield | | cflow.cs:275:13:275:42 | ...; | cflow.cs:261:49:261:53 | Yield | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:261:49:261:53 | Yield | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | exit ControlFlowSub | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | ControlFlowSub | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | ControlFlowSub | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:5:284:18 | ControlFlowSub | @@ -4139,9 +4219,11 @@ nodeEnclosing | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:5:286:18 | ControlFlowSub | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | ControlFlowSub | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | exit DelegateCall | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | DelegateCall | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | DelegateCall | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:12:291:12 | M | | cflow.cs:291:12:291:12 | exit M | cflow.cs:291:12:291:12 | M | @@ -4150,9 +4232,11 @@ nodeEnclosing | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | M | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:12:291:12 | M | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:5:296:25 | exit NegationInConstructor | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:5:296:25 | NegationInConstructor | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | NegationInConstructor | | cflow.cs:298:10:298:10 | enter M | cflow.cs:298:10:298:10 | M | | cflow.cs:298:10:298:10 | exit M | cflow.cs:298:10:298:10 | M | @@ -4172,9 +4256,11 @@ nodeEnclosing | cflow.cs:300:61:300:64 | null | cflow.cs:298:10:298:10 | M | | cflow.cs:300:70:300:71 | "" | cflow.cs:298:10:298:10 | M | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | exit LambdaGetter | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | LambdaGetter | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | LambdaGetter | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | get__getter | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | @@ -4731,11 +4817,14 @@ blockEnclosing | Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:36:10:36:11 | M6 | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:36:10:36:11 | M6 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | Initializers | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | Initializers | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | Sub | @@ -4800,9 +4889,9 @@ blockEnclosing | LoopUnrolling.cs:94:10:94:12 | exit M11 (normal) | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:9:100:9 | foreach (... ... in ...) ... | LoopUnrolling.cs:94:10:94:12 | M11 | | LoopUnrolling.cs:97:22:97:22 | String x | LoopUnrolling.cs:94:10:94:12 | M11 | -| MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:22:6:31 | exit get_P1 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:22:6:31 | get_P1 | @@ -4815,6 +4904,9 @@ blockEnclosing | MultiImplementationA.cs:8:16:8:16 | enter M | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:16:8:16 | exit M | MultiImplementationA.cs:8:16:8:16 | M | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationA.cs:11:7:11:8 | enter | 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 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | get_Item | @@ -4828,9 +4920,9 @@ blockEnclosing | MultiImplementationA.cs:16:17:16:18 | exit M1 (normal) | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationA.cs:17:5:19:5 | {...} | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | M2 | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:12:21:13 | C2 | @@ -4840,33 +4932,34 @@ blockEnclosing | MultiImplementationA.cs:23:28:23:35 | enter implicit conversion | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion | MultiImplementationA.cs:23:28:23:35 | implicit conversion | | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:21:30:23 | get_P3 | -| MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:9:36:10 | exit M1 | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:9:36:10 | M1 | | MultiImplementationA.cs:37:9:37:10 | enter M2 | MultiImplementationA.cs:37:9:37:10 | M2 | -| MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | C1 | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationA.cs:4:7:4:8 | C1 | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | get_P1 | | MultiImplementationB.cs:4:25:4:37 | {...} | 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 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | get_Item | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | get_Item | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationA.cs:15:54:15:56 | set_Item | | MultiImplementationB.cs:15:5:17:5 | {...} | MultiImplementationA.cs:16:17:16:18 | M1 | | MultiImplementationB.cs:16:9:16:31 | enter M2 | MultiImplementationB.cs:16:9:16:31 | M2 | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationB.cs:19:24:19:24 | 1 | MultiImplementationA.cs:21:12:21:13 | C2 | | MultiImplementationB.cs:20:11:20:25 | {...} | MultiImplementationA.cs:22:6:22:7 | ~C2 | | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationA.cs:23:28:23:35 | implicit conversion | -| MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | C3 | -| MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | C4 | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationA.cs:28:7:28:8 | C3 | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationA.cs:34:15:34:16 | C4 | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | M1 | | NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | NullCoalescing | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:9:3:10 | M1 | @@ -4906,6 +4999,7 @@ blockEnclosing | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | M6 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | Partial | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | Patterns | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected index ea7ade106ea..da8fe4664f5 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected @@ -1,4 +1,6 @@ | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | this access | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | {...} | | AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:37:5:39 | {...} | @@ -290,6 +292,8 @@ | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:78:73:78 | access to local variable d | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:80:73:80 | 1 | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | this access | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | {...} | | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:27:3:27 | 0 | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:27:3:27 | 0 | @@ -312,6 +316,8 @@ | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:45:9:45 | 2 | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:48:9:48 | 3 | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | this access | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | this access | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | {...} | | Assert.cs:8:5:12:5 | {...} | Assert.cs:8:5:12:5 | {...} | | Assert.cs:9:9:9:33 | ... ...; | Assert.cs:9:9:9:33 | ... ...; | @@ -675,6 +681,8 @@ | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:33:140:34 | access to parameter b3 | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | this access | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | this access | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | {...} | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:9:5:18 | ... ...; | @@ -715,6 +723,8 @@ | 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 | | 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 | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | {...} | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:5:9:17:9 | try {...} ... | BreakInTry.cs:5:9:17:9 | try {...} ... | @@ -791,6 +801,8 @@ | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:28:67:31 | null | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | this access | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | {...} | | CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:7:16:7:27 | default(...) | @@ -806,6 +818,8 @@ | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | this access | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | {...} | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:29:5:41:5 | {...} | | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | CompileTimeOperators.cs:30:9:38:9 | try {...} ... | @@ -826,6 +840,8 @@ | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:14:40:38 | ...; | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:32:40:36 | "End" | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | this access | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | {...} | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:3:26:3:38 | call to method ToString | ConditionalAccess.cs:3:26:3:26 | access to parameter i | @@ -886,6 +902,8 @@ | 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 | | 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 | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | {...} | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:5:9:6:16 | if (...) ... | Conditions.cs:5:9:6:16 | if (...) ... | @@ -1167,6 +1185,8 @@ | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:45:149:45 | access to local variable s | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:45:149:45 | access to local variable s | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | this access | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | {...} | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:9:5:12:5 | {...} | | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:20:10:23 | true | @@ -1336,6 +1356,8 @@ | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | access to method Parse | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | access to method Parse | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | this access | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | this access | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | {...} | | Finally.cs:8:5:17:5 | {...} | Finally.cs:8:5:17:5 | {...} | | Finally.cs:9:9:16:9 | try {...} ... | Finally.cs:9:9:16:9 | try {...} ... | @@ -1547,10 +1569,16 @@ | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:17:167:38 | ...; | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:35:167:36 | "" | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | this access | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | this access | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | {...} | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | this access | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | this access | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | {...} | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | this access | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | this access | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | {...} | | Finally.cs:177:5:193:5 | {...} | Finally.cs:177:5:193:5 | {...} | | Finally.cs:178:9:192:9 | try {...} ... | Finally.cs:178:9:192:9 | try {...} ... | @@ -1667,6 +1695,8 @@ | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:19 | ...; | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:18:272:18 | 3 | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | this access | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | {...} | | Foreach.cs:7:5:10:5 | {...} | Foreach.cs:7:5:10:5 | {...} | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:29:8:32 | access to parameter args | @@ -1721,8 +1751,12 @@ | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:27:6:27 | access to field H | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:31:6:31 | 2 | | Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | this access | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | this access | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:20:8:22 | {...} | | Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | this access | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:28:10:30 | {...} | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:13:5:16:5 | {...} | | Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:9:14:54 | ... ...; | @@ -1745,6 +1779,8 @@ | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:20:11:20:23 | call to constructor Object | 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 | this access | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | this access | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | {...} | | Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:23 | this access | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:23:22:23 | this access | @@ -1758,6 +1794,8 @@ | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | this access | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | 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:26 | access to field I | Initializers.cs:31:26:31:26 | this access | @@ -1773,6 +1811,8 @@ | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:36 | ...; | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | this access | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:29 | this access | @@ -1782,8 +1822,12 @@ | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:33:35:33 | access to parameter i | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:37:35:37 | access to parameter j | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | this access | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | this access | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | {...} | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | this access | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | {...} | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:52:5:66:5 | {...} | | Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:9:54:96 | ... ...; | @@ -1893,6 +1937,8 @@ | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:54:64:54 | 0 | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:59:64:61 | "1" | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | this access | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | {...} | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:8:5:13:5 | {...} | | LoopUnrolling.cs:9:9:10:19 | if (...) ... | LoopUnrolling.cs:9:9:10:19 | if (...) ... | @@ -2067,6 +2113,8 @@ | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:13:99:33 | ...; | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | {...} | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:28:6:31 | null | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | @@ -2092,6 +2140,8 @@ | MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:18:9:18:22 | M2(...) | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:21:18:21 | 0 | | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:22:20:31 | {...} | | MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:24 | this access | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:24 | this access | @@ -2108,10 +2158,14 @@ | MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:16:24:16 | this access | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:34:24:34 | 0 | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | {...} | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:34:30:37 | null | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | {...} | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:22:36:25 | null | @@ -2120,6 +2174,8 @@ | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:22:37:25 | null | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:22:37:25 | null | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | this access | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | {...} | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:25:4:37 | {...} | @@ -2143,6 +2199,8 @@ | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:27:16:30 | null | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:27:16:30 | null | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | this access | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:22:18:36 | {...} | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationB.cs:18:30:18:33 | null | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:30:18:33 | null | @@ -2159,11 +2217,17 @@ | MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:16:22:16 | this access | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:34:22:34 | 1 | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | this access | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | {...} | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | this access | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | {...} | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | this access | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | {...} | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | access to parameter i | | NullCoalescing.cs:3:23:3:28 | ... ?? ... | NullCoalescing.cs:3:23:3:23 | access to parameter i | @@ -2214,18 +2278,24 @@ | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:19:17:19 | access to parameter i | | NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:17:24:17:24 | 1 | | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | this access | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | this access | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:27:3:29 | {...} | | PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | 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 | this access | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | this access | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:22:4:24 | {...} | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:34:5:34 | 0 | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | this access | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | {...} | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:6:5:43:5 | {...} | | Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:9:7:24 | ... ...; | @@ -2398,6 +2468,8 @@ | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:13:97:39 | ...; | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:31:97:37 | "not C" | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | this access | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | {...} | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:6:5:8:5 | {...} | | PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:27:7:27 | access to parameter s | @@ -2425,6 +2497,8 @@ | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:29 | ...; | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:27:21:27 | access to parameter s | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | this access | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | {...} | | Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:28:7:31 | null | | Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:41:8:44 | null | @@ -2484,6 +2558,8 @@ | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | this access | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | this access | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | {...} | | Switch.cs:6:5:8:5 | {...} | Switch.cs:6:5:8:5 | {...} | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:7:9:7:22 | switch (...) {...} | @@ -2734,6 +2810,8 @@ | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:42:175:46 | "def" | | Switch.cs:176:17:176:22 | break; | Switch.cs:176:17:176:22 | break; | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | this access | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | {...} | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:4:5:9:5 | {...} | | TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:9:5:26 | ... ...; | @@ -2753,6 +2831,8 @@ | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:17:8:27 | typeof(...) | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:17:8:27 | typeof(...) | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | this access | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | {...} | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:6:5:11:5 | {...} | | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | @@ -2795,6 +2875,8 @@ | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:24:25:24 | access to local variable x | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:28:25:28 | access to local variable y | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | this access | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | {...} | | VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:51:28:53 | {...} | | cflow.cs:6:5:35:5 | {...} | cflow.cs:6:5:35:5 | {...} | @@ -3049,6 +3131,8 @@ | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:81 | ...; | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | this access | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | this access | | cflow.cs:130:5:132:5 | {...} | cflow.cs:130:5:132:5 | {...} | | cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:13 | this access | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:13 | this access | @@ -3372,6 +3456,8 @@ | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:31:275:40 | "not dead" | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:13:275:42 | ...; | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:31:275:40 | "not dead" | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | this access | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | this access | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:31:282:33 | {...} | | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | @@ -3381,11 +3467,15 @@ | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:34 | access to parameter i | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:48:286:50 | {...} | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | this access | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | this access | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | {...} | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:38:291:38 | access to parameter f | | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:38:291:38 | access to parameter f | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:40:291:40 | 0 | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | this access | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | this access | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:52:296:54 | {...} | | cflow.cs:299:5:301:5 | {...} | cflow.cs:299:5:301:5 | {...} | | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:38:300:38 | 0 | @@ -3401,6 +3491,8 @@ | cflow.cs:300:61:300:64 | null | cflow.cs:300:61:300:64 | null | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:70:300:71 | "" | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | this access | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | this access | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | {...} | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | | cflow.cs:307:5:310:5 | {...} | cflow.cs:307:5:310:5 | {...} | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected index 11880f4f825..e3d13701cff 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected @@ -1,4 +1,6 @@ | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | call to constructor Object | normal | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | call to method | normal | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | this access | normal | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | {...} | normal | | AccessorCalls.cs:5:30:5:30 | access to parameter i | AccessorCalls.cs:5:30:5:30 | access to parameter i | normal | | AccessorCalls.cs:5:37:5:39 | {...} | AccessorCalls.cs:5:37:5:39 | {...} | normal | @@ -290,6 +292,8 @@ | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:78:73:81 | dynamic access to element | normal | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:80:73:80 | 1 | normal | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | call to constructor Object | normal | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | call to method | normal | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | this access | normal | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | {...} | normal | | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | ArrayCreation.cs:3:19:3:28 | array creation of type Int32[] | normal | | ArrayCreation.cs:3:27:3:27 | 0 | ArrayCreation.cs:3:27:3:27 | 0 | normal | @@ -312,6 +316,8 @@ | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:45:9:45 | 2 | normal | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:48:9:48 | 3 | normal | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | call to constructor Object | normal | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | call to method | normal | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | this access | normal | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | {...} | normal | | Assert.cs:8:5:12:5 | {...} | Assert.cs:10:9:10:31 | call to method Assert | exit | | Assert.cs:8:5:12:5 | {...} | Assert.cs:11:9:11:35 | call to method WriteLine | normal | @@ -774,6 +780,8 @@ | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:33:140:34 | access to parameter b3 | normal | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:141:9:141:15 | return ...; | return | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | call to constructor Object | normal | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | call to method | normal | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | this access | normal | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | {...} | normal | | Assignments.cs:4:5:15:5 | {...} | Assignments.cs:14:9:14:35 | ... += ... | normal | | Assignments.cs:5:9:5:18 | ... ...; | Assignments.cs:5:13:5:17 | Int32 x = ... | normal | @@ -814,6 +822,8 @@ | 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 | | 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 | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | {...} | normal | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:15:17:15:28 | ... == ... | false | | BreakInTry.cs:4:5:18:5 | {...} | BreakInTry.cs:16:17:16:17 | ; | normal | @@ -941,6 +951,8 @@ | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:28:67:31 | null | normal | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:68:21:68:26 | break; | break | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | normal | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | call to method | normal | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | this access | normal | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | {...} | normal | | CompileTimeOperators.cs:6:5:8:5 | {...} | CompileTimeOperators.cs:7:9:7:28 | return ...; | return | | CompileTimeOperators.cs:7:9:7:28 | return ...; | CompileTimeOperators.cs:7:9:7:28 | return ...; | return | @@ -956,6 +968,8 @@ | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | normal | | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | CompileTimeOperators.cs:22:23:22:23 | access to parameter i | normal | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | normal | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | call to method | normal | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | this access | normal | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | {...} | normal | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | goto(End) [normal] (0) | | CompileTimeOperators.cs:29:5:41:5 | {...} | CompileTimeOperators.cs:37:13:37:40 | call to method WriteLine | throw(Exception) [normal] (0) | @@ -984,6 +998,8 @@ | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | normal | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:32:40:36 | "End" | normal | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | normal | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | call to method | normal | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | this access | normal | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | {...} | normal | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | access to parameter i | non-null | | ConditionalAccess.cs:3:26:3:26 | access to parameter i | ConditionalAccess.cs:3:26:3:26 | access to parameter i | null | @@ -1070,6 +1086,8 @@ | 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 | | 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 | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | {...} | normal | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:7:13:7:16 | !... | false | | Conditions.cs:4:5:9:5 | {...} | Conditions.cs:8:13:8:15 | ...-- | normal | @@ -1427,6 +1445,8 @@ | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:44:149:46 | {...} | normal | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:45:149:45 | access to local variable s | normal | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | call to constructor Object | normal | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | call to method | normal | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | this access | normal | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | {...} | normal | | ExitMethods.cs:9:5:12:5 | {...} | ExitMethods.cs:11:9:11:15 | return ...; | return | | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | ExitMethods.cs:10:9:10:24 | call to method ErrorMaybe | normal | @@ -1629,6 +1649,8 @@ | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | access to method Parse | normal | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:23:25:32 | delegate creation of type Func | normal | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | call to constructor Object | normal | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | call to method | normal | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | this access | normal | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | {...} | normal | | Finally.cs:8:5:17:5 | {...} | Finally.cs:15:13:15:40 | call to method WriteLine | normal | | Finally.cs:8:5:17:5 | {...} | Finally.cs:15:13:15:40 | call to method WriteLine | throw(Exception) [normal] (0) | @@ -2018,10 +2040,16 @@ | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:17:167:37 | call to method WriteLine | normal | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:35:167:36 | "" | normal | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | call to constructor Exception | normal | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | call to method | normal | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | this access | normal | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | {...} | normal | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | call to constructor Exception | normal | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | call to method | normal | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | this access | normal | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | {...} | normal | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | call to constructor Exception | normal | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | call to method | normal | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | this access | normal | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | {...} | normal | | Finally.cs:177:5:193:5 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | false | | Finally.cs:177:5:193:5 | {...} | Finally.cs:186:21:186:22 | access to parameter b2 | throw(Exception) [false] (0) | @@ -2267,6 +2295,8 @@ | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:18 | ... = ... | normal | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:18:272:18 | 3 | normal | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | call to constructor Object | normal | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | call to method | normal | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | this access | normal | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | {...} | normal | | Foreach.cs:7:5:10:5 | {...} | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | empty | | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | Foreach.cs:8:9:9:13 | foreach (... ... in ...) ... | empty | @@ -2324,8 +2354,12 @@ | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:27:6:31 | ... + ... | normal | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:31:6:31 | 2 | normal | | Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:5:8:16 | call to constructor Object | normal | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | call to method | normal | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | this access | normal | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:20:8:22 | {...} | normal | | Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:5:10:16 | call to constructor Object | normal | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | call to method | normal | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | this access | normal | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:28:10:30 | {...} | normal | | Initializers.cs:13:5:16:5 | {...} | Initializers.cs:15:13:15:63 | Initializers[] iz = ... | normal | | Initializers.cs:14:9:14:54 | ... ...; | Initializers.cs:14:13:14:53 | Initializers i = ... | normal | @@ -2348,6 +2382,8 @@ | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:20 | ... = ... | normal | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:20:18:20 | 1 | normal | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to constructor Object | normal | +| Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to method | normal | +| Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | this access | normal | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | {...} | normal | | Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:23 | this access | normal | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:23:22:23 | this access | normal | @@ -2361,6 +2397,8 @@ | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:13:28:13 | this access | normal | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:17 | ... = ... | normal | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:17:28:17 | 2 | normal | +| Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | call to method | normal | +| Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | this access | normal | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | normal | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:30 | ... = ... | normal | | Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:26 | this access | normal | @@ -2376,6 +2414,8 @@ | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:35 | ... = ... | normal | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:35:33:35 | access to parameter i | normal | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | normal | +| Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to method | normal | +| Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | this access | normal | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:37 | ... = ... | normal | | Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:29 | this access | normal | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:29 | this access | normal | @@ -2385,8 +2425,12 @@ | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:33:35:37 | ... + ... | normal | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:37:35:37 | access to parameter j | normal | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | call to constructor Object | normal | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to method | normal | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | this access | normal | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | {...} | normal | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | call to constructor Object | normal | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | call to method | normal | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | this access | normal | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | {...} | normal | | Initializers.cs:52:5:66:5 | {...} | Initializers.cs:57:13:65:9 | Compound compound = ... | normal | | Initializers.cs:54:9:54:96 | ... ...; | Initializers.cs:54:13:54:95 | Dictionary dict = ... | normal | @@ -2496,6 +2540,8 @@ | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:54:64:54 | 0 | normal | | Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:59:64:61 | "1" | normal | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | normal | +| LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to method | normal | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | this access | normal | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | {...} | normal | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:10:13:10:19 | return ...; | return | | LoopUnrolling.cs:8:5:13:5 | {...} | LoopUnrolling.cs:11:9:12:35 | foreach (... ... in ...) ... | empty | @@ -2684,6 +2730,8 @@ | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | normal | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:31:99:31 | access to local variable x | normal | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | normal | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | call to method | normal | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | this access | normal | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | {...} | normal | | MultiImplementationA.cs:6:22:6:31 | throw ... | MultiImplementationA.cs:6:22:6:31 | throw ... | throw(NullReferenceException) | | MultiImplementationA.cs:6:28:6:31 | null | MultiImplementationA.cs:6:28:6:31 | null | normal | @@ -2709,6 +2757,8 @@ | MultiImplementationA.cs:18:9:18:22 | M2(...) | MultiImplementationA.cs:18:9:18:22 | M2(...) | normal | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:21:18:21 | 0 | normal | | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | normal | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | call to method | normal | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | this access | normal | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:28 | ... = ... | normal | | MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:24 | this access | normal | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:24 | this access | normal | @@ -2725,10 +2775,14 @@ | MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:24:32:24:34 | ... = ... | normal | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:34:24:34 | 0 | normal | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | normal | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | call to method | normal | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | this access | normal | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | {...} | normal | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:28:30:37 | throw ... | throw(NullReferenceException) | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:34:30:37 | null | normal | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | normal | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | call to method | normal | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | this access | normal | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | {...} | normal | | MultiImplementationA.cs:36:14:36:28 | {...} | MultiImplementationA.cs:36:16:36:26 | throw ...; | throw(NullReferenceException) | | MultiImplementationA.cs:36:16:36:26 | throw ...; | MultiImplementationA.cs:36:16:36:26 | throw ...; | throw(NullReferenceException) | @@ -2737,6 +2791,8 @@ | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:16:37:26 | throw ...; | throw(NullReferenceException) | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:22:37:25 | null | normal | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | normal | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | call to method | normal | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | this access | normal | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationB.cs:1:7:1:8 | {...} | normal | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationB.cs:3:22:3:22 | 0 | normal | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:27:4:35 | return ...; | return | @@ -2760,6 +2816,8 @@ | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:21:16:30 | throw ... | throw(NullReferenceException) | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:27:16:30 | null | normal | | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | normal | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | call to method | normal | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | this access | normal | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:24:18:34 | throw ...; | throw(NullReferenceException) | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationB.cs:18:24:18:34 | throw ...; | throw(NullReferenceException) | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:30:18:33 | null | normal | @@ -2776,11 +2834,17 @@ | MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:22:32:22:34 | ... = ... | normal | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:34:22:34 | 1 | normal | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | normal | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | call to method | normal | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | this access | normal | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationB.cs:25:7:25:8 | {...} | normal | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | normal | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | call to method | normal | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | this access | normal | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationB.cs:30:15:30:16 | {...} | normal | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationB.cs:32:17:32:17 | 0 | normal | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | call to constructor Object | normal | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | call to method | normal | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | this access | normal | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | {...} | normal | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | access to parameter i | non-null | | NullCoalescing.cs:3:23:3:23 | access to parameter i | NullCoalescing.cs:3:23:3:23 | access to parameter i | null | @@ -2847,18 +2911,24 @@ | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:19:17:19 | access to parameter i | normal | | NullCoalescing.cs:17:24:17:24 | 1 | NullCoalescing.cs:17:24:17:24 | 1 | normal | | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | normal | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | call to method | normal | +| PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | this access | normal | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:27:3:29 | {...} | normal | | PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:16 | this access | normal | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:16:3:16 | this access | normal | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:20 | ... = ... | normal | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:20:3:20 | 0 | normal | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | normal | +| PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to method | normal | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | this access | normal | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:22:4:24 | {...} | normal | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:16:5:16 | this access | normal | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:16:5:16 | this access | normal | | PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:5:32:5:34 | ... = ... | normal | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:34:5:34 | 0 | normal | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | call to constructor Object | normal | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | call to method | normal | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | this access | normal | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | {...} | normal | | Patterns.cs:6:5:43:5 | {...} | Patterns.cs:40:17:40:17 | access to local variable o | normal | | Patterns.cs:7:9:7:24 | ... ...; | Patterns.cs:7:16:7:23 | Object o = ... | normal | @@ -3091,6 +3161,8 @@ | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:13:97:38 | call to method WriteLine | normal | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:31:97:37 | "not C" | normal | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | call to constructor Object | normal | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | call to method | normal | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | this access | normal | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | {...} | normal | | PostDominance.cs:6:5:8:5 | {...} | PostDominance.cs:7:9:7:28 | call to method WriteLine | normal | | PostDominance.cs:7:9:7:28 | call to method WriteLine | PostDominance.cs:7:9:7:28 | call to method WriteLine | normal | @@ -3126,6 +3198,8 @@ | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:9:21:28 | call to method WriteLine | normal | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:27:21:27 | access to parameter s | normal | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | call to constructor Object | normal | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | call to method | normal | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | this access | normal | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | {...} | normal | | Qualifiers.cs:7:28:7:31 | null | Qualifiers.cs:7:28:7:31 | null | normal | | Qualifiers.cs:8:41:8:44 | null | Qualifiers.cs:8:41:8:44 | null | normal | @@ -3185,6 +3259,8 @@ | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | normal | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:13:30:46 | call to method Method | normal | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | call to constructor Object | normal | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | call to method | normal | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | this access | normal | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | {...} | normal | | Switch.cs:6:5:8:5 | {...} | Switch.cs:7:17:7:17 | access to parameter o | normal | | Switch.cs:7:9:7:22 | switch (...) {...} | Switch.cs:7:17:7:17 | access to parameter o | normal | @@ -3579,6 +3655,8 @@ | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:42:175:46 | "def" | normal | | Switch.cs:176:17:176:22 | break; | Switch.cs:176:17:176:22 | break; | break | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | call to constructor Object | normal | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | call to method | normal | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | this access | normal | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | {...} | normal | | TypeAccesses.cs:4:5:9:5 | {...} | TypeAccesses.cs:8:13:8:27 | Type t = ... | normal | | TypeAccesses.cs:5:9:5:26 | ... ...; | TypeAccesses.cs:5:13:5:25 | String s = ... | normal | @@ -3601,6 +3679,8 @@ | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:8:13:8:27 | Type t = ... | normal | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:17:8:27 | typeof(...) | normal | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | call to constructor Object | normal | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | call to method | normal | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | this access | normal | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | {...} | normal | | VarDecls.cs:6:5:11:5 | {...} | VarDecls.cs:9:13:9:29 | return ...; | return | | VarDecls.cs:7:9:10:9 | fixed(...) { ... } | VarDecls.cs:9:13:9:29 | return ...; | return | @@ -3644,6 +3724,8 @@ | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:24:25:24 | access to local variable x | normal | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:28:25:28 | access to local variable y | normal | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | call to constructor Object | normal | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | call to method | normal | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | this access | normal | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | {...} | normal | | VarDecls.cs:28:51:28:53 | {...} | VarDecls.cs:28:51:28:53 | {...} | normal | | cflow.cs:6:5:35:5 | {...} | cflow.cs:24:25:24:31 | ... <= ... | false | @@ -3959,6 +4041,8 @@ | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:80 | ... = ... | normal | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:76:127:80 | access to parameter value | normal | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to constructor Object | normal | +| cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to method | normal | +| cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | this access | normal | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:17 | ... = ... | normal | | cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:13 | this access | normal | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:13 | this access | normal | @@ -4352,6 +4436,8 @@ | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:275:13:275:41 | call to method WriteLine | normal | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:13:275:41 | call to method WriteLine | normal | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:31:275:40 | "not dead" | normal | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:5:282:18 | call to method | normal | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | this access | normal | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:24:282:27 | call to constructor ControlFlow | normal | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:31:282:33 | {...} | normal | | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | normal | @@ -4361,11 +4447,15 @@ | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:34:286:45 | call to method ToString | normal | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:48:286:50 | {...} | normal | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | call to constructor Object | normal | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | call to method | normal | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | this access | normal | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | {...} | normal | | cflow.cs:291:38:291:38 | access to parameter f | cflow.cs:291:38:291:38 | access to parameter f | normal | | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:38:291:41 | delegate call | normal | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:40:291:40 | 0 | normal | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:5:296:25 | call to constructor Object | normal | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | call to method | normal | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | this access | normal | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:52:296:54 | {...} | normal | | cflow.cs:299:5:301:5 | {...} | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | normal | | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | normal | @@ -4383,6 +4473,8 @@ | cflow.cs:300:61:300:64 | null | cflow.cs:300:61:300:64 | null | normal | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:70:300:71 | "" | normal | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | call to constructor Object | normal | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | call to method | normal | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | this access | normal | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | {...} | normal | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | (...) => ... | normal | | cflow.cs:307:5:310:5 | {...} | cflow.cs:309:9:309:17 | return ...; | return | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index 63855522ba6..b764e2fb2a5 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -1,6 +1,8 @@ | AccessorCalls.cs:1:7:1:19 | call to constructor Object | AccessorCalls.cs:1:7:1:19 | {...} | | -| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | call to method | AccessorCalls.cs:1:7:1:19 | call to constructor Object | | +| AccessorCalls.cs:1:7:1:19 | enter AccessorCalls | AccessorCalls.cs:1:7:1:19 | this access | | | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls | | +| AccessorCalls.cs:1:7:1:19 | this access | AccessorCalls.cs:1:7:1:19 | call to method | | | AccessorCalls.cs:1:7:1:19 | {...} | AccessorCalls.cs:1:7:1:19 | exit AccessorCalls (normal) | | | AccessorCalls.cs:5:23:5:25 | enter get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | | AccessorCalls.cs:5:23:5:25 | exit get_Item (normal) | AccessorCalls.cs:5:23:5:25 | exit get_Item | | @@ -304,8 +306,10 @@ | AccessorCalls.cs:73:78:73:81 | dynamic access to element | AccessorCalls.cs:73:74:73:82 | (..., ...) | | | AccessorCalls.cs:73:80:73:80 | 1 | AccessorCalls.cs:73:78:73:81 | dynamic access to element | | | ArrayCreation.cs:1:7:1:19 | call to constructor Object | ArrayCreation.cs:1:7:1:19 | {...} | | -| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | call to method | ArrayCreation.cs:1:7:1:19 | call to constructor Object | | +| ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | this access | | | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | | +| ArrayCreation.cs:1:7:1:19 | this access | ArrayCreation.cs:1:7:1:19 | call to method | | | ArrayCreation.cs:1:7:1:19 | {...} | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation (normal) | | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:27:3:27 | 0 | | | ArrayCreation.cs:3:11:3:12 | exit M1 (normal) | ArrayCreation.cs:3:11:3:12 | exit M1 | | @@ -336,8 +340,10 @@ | ArrayCreation.cs:9:45:9:45 | 2 | ArrayCreation.cs:9:48:9:48 | 3 | | | ArrayCreation.cs:9:48:9:48 | 3 | ArrayCreation.cs:9:43:9:50 | { ..., ... } | | | Assert.cs:5:7:5:17 | call to constructor Object | Assert.cs:5:7:5:17 | {...} | | -| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | call to constructor Object | | +| Assert.cs:5:7:5:17 | call to method | Assert.cs:5:7:5:17 | call to constructor Object | | +| Assert.cs:5:7:5:17 | enter AssertTests | Assert.cs:5:7:5:17 | this access | | | Assert.cs:5:7:5:17 | exit AssertTests (normal) | Assert.cs:5:7:5:17 | exit AssertTests | | +| Assert.cs:5:7:5:17 | this access | Assert.cs:5:7:5:17 | call to method | | | Assert.cs:5:7:5:17 | {...} | Assert.cs:5:7:5:17 | exit AssertTests (normal) | | | Assert.cs:7:10:7:11 | enter M1 | Assert.cs:8:5:12:5 | {...} | | | Assert.cs:7:10:7:11 | exit M1 (abnormal) | Assert.cs:7:10:7:11 | exit M1 | | @@ -795,8 +801,10 @@ | Assert.cs:140:33:140:34 | access to parameter b3 | Assert.cs:140:9:140:35 | call to method AssertTrueFalse | | | Assert.cs:141:9:141:15 | return ...; | Assert.cs:138:10:138:12 | exit M13 (normal) | return | | Assignments.cs:1:7:1:17 | call to constructor Object | Assignments.cs:1:7:1:17 | {...} | | -| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | | +| Assignments.cs:1:7:1:17 | call to method | Assignments.cs:1:7:1:17 | call to constructor Object | | +| Assignments.cs:1:7:1:17 | enter Assignments | Assignments.cs:1:7:1:17 | this access | | | Assignments.cs:1:7:1:17 | exit Assignments (normal) | Assignments.cs:1:7:1:17 | exit Assignments | | +| Assignments.cs:1:7:1:17 | this access | Assignments.cs:1:7:1:17 | call to method | | | Assignments.cs:1:7:1:17 | {...} | Assignments.cs:1:7:1:17 | exit Assignments (normal) | | | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:4:5:15:5 | {...} | | | Assignments.cs:3:10:3:10 | exit M (normal) | Assignments.cs:3:10:3:10 | exit M | | @@ -840,8 +848,10 @@ | 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 ...; | | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | -| BreakInTry.cs:1:7:1:16 | enter BreakInTry | 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 constructor Object | | +| BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | BreakInTry.cs:1:7:1:16 | exit BreakInTry | | +| BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | call to method | | | BreakInTry.cs:1:7:1:16 | {...} | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:4:5:18:5 | {...} | | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | | @@ -942,8 +952,10 @@ | BreakInTry.cs:67:28:67:31 | null | BreakInTry.cs:67:21:67:31 | ... == ... | | | BreakInTry.cs:68:21:68:26 | break; | BreakInTry.cs:56:10:56:11 | exit M4 (normal) | break, return | | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | CompileTimeOperators.cs:3:7:3:26 | {...} | | -| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | call to method | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | | +| CompileTimeOperators.cs:3:7:3:26 | enter CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | this access | | | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators | | +| CompileTimeOperators.cs:3:7:3:26 | this access | CompileTimeOperators.cs:3:7:3:26 | call to method | | | CompileTimeOperators.cs:3:7:3:26 | {...} | CompileTimeOperators.cs:3:7:3:26 | exit CompileTimeOperators (normal) | | | CompileTimeOperators.cs:5:9:5:15 | enter Default | CompileTimeOperators.cs:6:5:8:5 | {...} | | | CompileTimeOperators.cs:5:9:5:15 | exit Default (normal) | CompileTimeOperators.cs:5:9:5:15 | exit Default | | @@ -966,8 +978,10 @@ | CompileTimeOperators.cs:22:9:22:25 | return ...; | CompileTimeOperators.cs:20:12:20:17 | exit Nameof (normal) | return | | CompileTimeOperators.cs:22:16:22:24 | nameof(...) | CompileTimeOperators.cs:22:9:22:25 | return ...; | | | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | CompileTimeOperators.cs:26:7:26:22 | {...} | | -| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | call to method | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | | +| CompileTimeOperators.cs:26:7:26:22 | enter GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | this access | | | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally | | +| CompileTimeOperators.cs:26:7:26:22 | this access | CompileTimeOperators.cs:26:7:26:22 | call to method | | | CompileTimeOperators.cs:26:7:26:22 | {...} | CompileTimeOperators.cs:26:7:26:22 | exit GotoInTryFinally (normal) | | | CompileTimeOperators.cs:28:10:28:10 | enter M | CompileTimeOperators.cs:29:5:41:5 | {...} | | | CompileTimeOperators.cs:28:10:28:10 | exit M (abnormal) | CompileTimeOperators.cs:28:10:28:10 | exit M | | @@ -990,8 +1004,10 @@ | CompileTimeOperators.cs:40:14:40:38 | ...; | CompileTimeOperators.cs:40:32:40:36 | "End" | | | CompileTimeOperators.cs:40:32:40:36 | "End" | CompileTimeOperators.cs:40:14:40:37 | call to method WriteLine | | | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | ConditionalAccess.cs:1:7:1:23 | {...} | | -| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | call to method | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | | +| ConditionalAccess.cs:1:7:1:23 | enter ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | this access | | | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess | | +| ConditionalAccess.cs:1:7:1:23 | this access | ConditionalAccess.cs:1:7:1:23 | call to method | | | ConditionalAccess.cs:1:7:1:23 | {...} | ConditionalAccess.cs:1:7:1:23 | exit ConditionalAccess (normal) | | | ConditionalAccess.cs:3:12:3:13 | enter M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | | ConditionalAccess.cs:3:12:3:13 | exit M1 (normal) | ConditionalAccess.cs:3:12:3:13 | exit M1 | | @@ -1085,8 +1101,10 @@ | 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 | ... + ... | | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | -| Conditions.cs:1:7:1:16 | enter Conditions | 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 constructor Object | | +| Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | | Conditions.cs:1:7:1:16 | exit Conditions (normal) | Conditions.cs:1:7:1:16 | exit Conditions | | +| Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | call to method | | | Conditions.cs:1:7:1:16 | {...} | Conditions.cs:1:7:1:16 | exit Conditions (normal) | | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | | @@ -1427,8 +1445,10 @@ | Conditions.cs:149:44:149:46 | {...} | Conditions.cs:149:38:149:47 | $"..." | | | Conditions.cs:149:45:149:45 | access to local variable s | Conditions.cs:149:44:149:46 | {...} | | | ExitMethods.cs:6:7:6:17 | call to constructor Object | ExitMethods.cs:6:7:6:17 | {...} | | -| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | call to method | ExitMethods.cs:6:7:6:17 | call to constructor Object | | +| ExitMethods.cs:6:7:6:17 | enter ExitMethods | ExitMethods.cs:6:7:6:17 | this access | | | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | ExitMethods.cs:6:7:6:17 | exit ExitMethods | | +| ExitMethods.cs:6:7:6:17 | this access | ExitMethods.cs:6:7:6:17 | call to method | | | ExitMethods.cs:6:7:6:17 | {...} | ExitMethods.cs:6:7:6:17 | exit ExitMethods (normal) | | | ExitMethods.cs:8:10:8:11 | enter M1 | ExitMethods.cs:9:5:12:5 | {...} | | | ExitMethods.cs:8:10:8:11 | exit M1 (normal) | ExitMethods.cs:8:10:8:11 | exit M1 | | @@ -1639,8 +1659,10 @@ | Extensions.cs:25:23:25:32 | access to method Parse | Extensions.cs:25:23:25:32 | delegate creation of type Func | | | Extensions.cs:25:23:25:32 | delegate creation of type Func | Extensions.cs:25:9:25:33 | call to method ToBool | | | Finally.cs:3:14:3:20 | call to constructor Object | Finally.cs:3:14:3:20 | {...} | | -| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | call to constructor Object | | +| Finally.cs:3:14:3:20 | call to method | Finally.cs:3:14:3:20 | call to constructor Object | | +| Finally.cs:3:14:3:20 | enter Finally | Finally.cs:3:14:3:20 | this access | | | Finally.cs:3:14:3:20 | exit Finally (normal) | Finally.cs:3:14:3:20 | exit Finally | | +| Finally.cs:3:14:3:20 | this access | Finally.cs:3:14:3:20 | call to method | | | Finally.cs:3:14:3:20 | {...} | Finally.cs:3:14:3:20 | exit Finally (normal) | | | Finally.cs:7:10:7:11 | enter M1 | Finally.cs:8:5:17:5 | {...} | | | Finally.cs:7:10:7:11 | exit M1 (abnormal) | Finally.cs:7:10:7:11 | exit M1 | | @@ -1906,16 +1928,22 @@ | Finally.cs:167:17:167:38 | ...; | Finally.cs:167:35:167:36 | "" | | | Finally.cs:167:35:167:36 | "" | Finally.cs:167:17:167:37 | call to method WriteLine | | | Finally.cs:172:11:172:20 | call to constructor Exception | Finally.cs:172:11:172:20 | {...} | | -| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | | +| Finally.cs:172:11:172:20 | call to method | Finally.cs:172:11:172:20 | call to constructor Exception | | +| Finally.cs:172:11:172:20 | enter ExceptionA | Finally.cs:172:11:172:20 | this access | | | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | Finally.cs:172:11:172:20 | exit ExceptionA | | +| Finally.cs:172:11:172:20 | this access | Finally.cs:172:11:172:20 | call to method | | | Finally.cs:172:11:172:20 | {...} | Finally.cs:172:11:172:20 | exit ExceptionA (normal) | | | Finally.cs:173:11:173:20 | call to constructor Exception | Finally.cs:173:11:173:20 | {...} | | -| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | call to constructor Exception | | +| Finally.cs:173:11:173:20 | call to method | Finally.cs:173:11:173:20 | call to constructor Exception | | +| Finally.cs:173:11:173:20 | enter ExceptionB | Finally.cs:173:11:173:20 | this access | | | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | Finally.cs:173:11:173:20 | exit ExceptionB | | +| Finally.cs:173:11:173:20 | this access | Finally.cs:173:11:173:20 | call to method | | | Finally.cs:173:11:173:20 | {...} | Finally.cs:173:11:173:20 | exit ExceptionB (normal) | | | Finally.cs:174:11:174:20 | call to constructor Exception | Finally.cs:174:11:174:20 | {...} | | -| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | call to constructor Exception | | +| Finally.cs:174:11:174:20 | call to method | Finally.cs:174:11:174:20 | call to constructor Exception | | +| Finally.cs:174:11:174:20 | enter ExceptionC | Finally.cs:174:11:174:20 | this access | | | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | Finally.cs:174:11:174:20 | exit ExceptionC | | +| Finally.cs:174:11:174:20 | this access | Finally.cs:174:11:174:20 | call to method | | | Finally.cs:174:11:174:20 | {...} | Finally.cs:174:11:174:20 | exit ExceptionC (normal) | | | Finally.cs:176:10:176:11 | enter M9 | Finally.cs:177:5:193:5 | {...} | | | Finally.cs:176:10:176:11 | exit M9 (abnormal) | Finally.cs:176:10:176:11 | exit M9 | | @@ -2067,8 +2095,10 @@ | Finally.cs:272:13:272:19 | ...; | Finally.cs:272:13:272:13 | access to parameter i | | | Finally.cs:272:18:272:18 | 3 | Finally.cs:272:13:272:18 | ... + ... | | | Foreach.cs:4:7:4:13 | call to constructor Object | Foreach.cs:4:7:4:13 | {...} | | -| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | | +| Foreach.cs:4:7:4:13 | call to method | Foreach.cs:4:7:4:13 | call to constructor Object | | +| Foreach.cs:4:7:4:13 | enter Foreach | Foreach.cs:4:7:4:13 | this access | | | Foreach.cs:4:7:4:13 | exit Foreach (normal) | Foreach.cs:4:7:4:13 | exit Foreach | | +| Foreach.cs:4:7:4:13 | this access | Foreach.cs:4:7:4:13 | call to method | | | Foreach.cs:4:7:4:13 | {...} | Foreach.cs:4:7:4:13 | exit Foreach (normal) | | | Foreach.cs:6:10:6:11 | enter M1 | Foreach.cs:7:5:10:5 | {...} | | | Foreach.cs:6:10:6:11 | exit M1 (normal) | Foreach.cs:6:10:6:11 | exit M1 | | @@ -2129,38 +2159,33 @@ | Foreach.cs:38:33:38:33 | Int32 y | Foreach.cs:38:18:38:34 | (..., ...) | | | Foreach.cs:38:39:38:42 | access to parameter args | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | | Foreach.cs:39:11:39:11 | ; | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:5:9:5:9 | this access | | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | {...} | | +| 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 | this access | Initializers.cs:5:13:5:13 | access to field H | | -| 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: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: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:17 | ... = ... | | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | -| 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 | 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 | | -| Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:8:20:8:22 | {...} | | -| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:10:28:10:30 | {...} | | -| Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | | +| Initializers.cs:6:25:6:31 | ... = ... | Initializers.cs:3:7:3:18 | exit (normal) | | | Initializers.cs:6:27:6:27 | access to field H | Initializers.cs:6:31:6:31 | 2 | | | Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | | -| Initializers.cs:6:27:6:31 | ... + ... | Initializers.cs:6:9:6:9 | access to property G | | | Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | | -| Initializers.cs:6:31:6:31 | 2 | Initializers.cs:6:27:6:31 | ... + ... | | -| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | | -| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | call to constructor Object | | +| Initializers.cs:8:5:8:16 | call to constructor Object | Initializers.cs:8:20:8:22 | {...} | | +| Initializers.cs:8:5:8:16 | call to method | Initializers.cs:8:5:8:16 | call to constructor Object | | +| Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | this access | | | Initializers.cs:8:5:8:16 | exit Initializers (normal) | Initializers.cs:8:5:8:16 | exit Initializers | | +| Initializers.cs:8:5:8:16 | this access | Initializers.cs:8:5:8:16 | call to method | | | Initializers.cs:8:20:8:22 | {...} | Initializers.cs:8:5:8:16 | exit Initializers (normal) | | -| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:5:9:5:9 | this access | | -| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | call to constructor Object | | +| Initializers.cs:10:5:10:16 | call to constructor Object | Initializers.cs:10:28:10:30 | {...} | | +| Initializers.cs:10:5:10:16 | call to method | Initializers.cs:10:5:10:16 | call to constructor Object | | +| Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | this access | | | Initializers.cs:10:5:10:16 | exit Initializers (normal) | Initializers.cs:10:5:10:16 | exit Initializers | | +| Initializers.cs:10:5:10:16 | this access | Initializers.cs:10:5:10:16 | call to method | | | Initializers.cs:10:28:10:30 | {...} | Initializers.cs:10:5:10:16 | exit Initializers (normal) | | | Initializers.cs:12:10:12:10 | enter M | Initializers.cs:13:5:16:5 | {...} | | | Initializers.cs:12:10:12:10 | exit M (normal) | Initializers.cs:12:10:12:10 | exit M | | @@ -2187,25 +2212,30 @@ | 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:20:11:20:23 | call to constructor Object | Initializers.cs:22:23:22:23 | this access | | -| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | call to constructor Object | | +| 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 | | +| Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | this access | | +| Initializers.cs:20:11:20:23 | exit (normal) | Initializers.cs:20:11:20:23 | exit | | | 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 | 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: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 | {...} | | +| 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: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 | this access | Initializers.cs:28:17:28:17 | 2 | | -| Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:31:24:31:33 | {...} | | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:35:27:35:40 | {...} | | +| 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:17 | ... = ... | | -| 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: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:17:31:20 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | | +| 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 | this access | Initializers.cs:31:30:31:30 | 3 | | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | @@ -2219,9 +2249,11 @@ | 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:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:28:13:28:13 | this access | | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | +| 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 | 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) | | @@ -2230,12 +2262,16 @@ | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | | 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 | enter IndexInitializers | Initializers.cs:39:7:39:23 | call to constructor Object | | +| Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | | +| Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | this access | | | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | Initializers.cs:39:7:39:23 | exit IndexInitializers | | +| Initializers.cs:39:7:39:23 | this access | Initializers.cs:39:7:39:23 | call to method | | | Initializers.cs:39:7:39:23 | {...} | Initializers.cs:39:7:39:23 | exit IndexInitializers (normal) | | | Initializers.cs:41:11:41:18 | call to constructor Object | Initializers.cs:41:11:41:18 | {...} | | -| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | call to constructor Object | | +| Initializers.cs:41:11:41:18 | call to method | Initializers.cs:41:11:41:18 | call to constructor Object | | +| Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | this access | | | Initializers.cs:41:11:41:18 | exit Compound (normal) | Initializers.cs:41:11:41:18 | exit Compound | | +| Initializers.cs:41:11:41:18 | this access | Initializers.cs:41:11:41:18 | call to method | | | Initializers.cs:41:11:41:18 | {...} | Initializers.cs:41:11:41:18 | exit Compound (normal) | | | Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:52:5:66:5 | {...} | | | Initializers.cs:51:10:51:13 | exit Test (normal) | Initializers.cs:51:10:51:13 | exit Test | | @@ -2342,8 +2378,10 @@ | 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 | ... = ... | | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | -| LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | +| 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 | | | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | | +| LoopUnrolling.cs:5:7:5:19 | this access | LoopUnrolling.cs:5:7:5:19 | call to method | | | LoopUnrolling.cs:5:7:5:19 | {...} | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling (normal) | | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:8:5:13:5 | {...} | | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | | @@ -2558,9 +2596,11 @@ | LoopUnrolling.cs:99:13:99:33 | ...; | LoopUnrolling.cs:99:31:99:31 | access to local variable x | | | LoopUnrolling.cs:99:31:99:31 | access to local variable x | LoopUnrolling.cs:99:13:99:32 | call to method WriteLine | | | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | MultiImplementationA.cs:4:7:4:8 | {...} | | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | -| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | call to method | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationA.cs:4:7:4:8 | this access | | +| MultiImplementationA.cs:4:7:4:8 | enter C1 | MultiImplementationB.cs:1:7:1:8 | this access | | | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | MultiImplementationA.cs:4:7:4:8 | exit C1 | | +| MultiImplementationA.cs:4:7:4:8 | this access | MultiImplementationA.cs:4:7:4:8 | call to method | | | MultiImplementationA.cs:4:7:4:8 | {...} | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationA.cs:6:28:6:31 | null | | | MultiImplementationA.cs:6:22:6:31 | enter get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | @@ -2588,6 +2628,9 @@ | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | MultiImplementationA.cs:8:16:8:16 | exit M | | | MultiImplementationA.cs:8:23:8:32 | throw ... | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | exception | | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:23:8:32 | throw ... | | +| 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 | 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 | ... = ... | | @@ -2615,11 +2658,13 @@ | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:21:18:21 | 0 | | | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | MultiImplementationA.cs:18:9:18:22 | exit M2 | | | MultiImplementationA.cs:18:21:18:21 | 0 | MultiImplementationA.cs:18:9:18:22 | exit M2 (normal) | | -| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:13:16:13:16 | this access | | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | -| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | call to constructor Object | MultiImplementationA.cs:20:22:20:31 | {...} | | +| MultiImplementationA.cs:20:12:20:13 | call to method | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | this access | | +| MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | | | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | MultiImplementationA.cs:20:12:20:13 | exit C2 | | | 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 | 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) | | @@ -2643,21 +2688,25 @@ | MultiImplementationA.cs:23:50:23:53 | null | MultiImplementationA.cs:23:28:23:35 | exit implicit conversion (normal) | | | MultiImplementationA.cs:24:16:24:16 | access to property P | MultiImplementationA.cs:24:32:24:34 | ... = ... | | | MultiImplementationA.cs:24:16:24:16 | this access | MultiImplementationA.cs:24:34:24:34 | 0 | | -| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:20:22:20:31 | {...} | | +| MultiImplementationA.cs:24:32:24:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | exit (normal) | | | MultiImplementationA.cs:24:34:24:34 | 0 | MultiImplementationA.cs:24:16:24:16 | access to property P | | | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | MultiImplementationA.cs:28:7:28:8 | {...} | | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | -| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | call to method | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationA.cs:28:7:28:8 | this access | | +| MultiImplementationA.cs:28:7:28:8 | enter C3 | MultiImplementationB.cs:25:7:25:8 | this access | | | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | MultiImplementationA.cs:28:7:28:8 | exit C3 | | +| MultiImplementationA.cs:28:7:28:8 | this access | MultiImplementationA.cs:28:7:28:8 | call to method | | | MultiImplementationA.cs:28:7:28:8 | {...} | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | | MultiImplementationA.cs:30:21:30:23 | enter get_P3 | MultiImplementationA.cs:30:34:30:37 | null | | | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | MultiImplementationA.cs:30:21:30:23 | exit get_P3 | | | MultiImplementationA.cs:30:28:30:37 | throw ... | MultiImplementationA.cs:30:21:30:23 | exit get_P3 (abnormal) | exception | | MultiImplementationA.cs:30:34:30:37 | null | MultiImplementationA.cs:30:28:30:37 | throw ... | | | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | MultiImplementationA.cs:34:15:34:16 | {...} | | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | -| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | call to method | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationA.cs:34:15:34:16 | this access | | +| MultiImplementationA.cs:34:15:34:16 | enter C4 | MultiImplementationB.cs:30:15:30:16 | this access | | | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | MultiImplementationA.cs:34:15:34:16 | exit C4 | | +| MultiImplementationA.cs:34:15:34:16 | this access | MultiImplementationA.cs:34:15:34:16 | call to method | | | MultiImplementationA.cs:34:15:34:16 | {...} | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationA.cs:36:14:36:28 | {...} | | | MultiImplementationA.cs:36:9:36:10 | enter M1 | MultiImplementationB.cs:32:17:32:17 | 0 | | @@ -2672,6 +2721,8 @@ | MultiImplementationA.cs:37:16:37:26 | throw ...; | MultiImplementationA.cs:37:9:37:10 | exit M2 (abnormal) | exception | | MultiImplementationA.cs:37:22:37:25 | null | MultiImplementationA.cs:37:16:37:26 | throw ...; | | | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | MultiImplementationB.cs:1:7:1:8 | {...} | | +| MultiImplementationB.cs:1:7:1:8 | call to method | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | | +| MultiImplementationB.cs:1:7:1:8 | this access | MultiImplementationB.cs:1:7:1:8 | call to method | | | MultiImplementationB.cs:1:7:1:8 | {...} | MultiImplementationA.cs:4:7:4:8 | exit C1 (normal) | | | MultiImplementationB.cs:3:22:3:22 | 0 | MultiImplementationA.cs:6:22:6:31 | exit get_P1 (normal) | | | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationB.cs:4:34:4:34 | 1 | | @@ -2694,7 +2745,9 @@ | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | MultiImplementationB.cs:16:9:16:31 | exit M2 | | | MultiImplementationB.cs:16:21:16:30 | throw ... | MultiImplementationB.cs:16:9:16:31 | exit M2 (abnormal) | exception | | MultiImplementationB.cs:16:27:16:30 | null | MultiImplementationB.cs:16:21:16:30 | throw ... | | -| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:11:16:11:16 | this access | | +| MultiImplementationB.cs:18:12:18:13 | call to constructor Object | MultiImplementationB.cs:18:22:18:36 | {...} | | +| MultiImplementationB.cs:18:12:18:13 | call to method | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | | +| MultiImplementationB.cs:18:12:18:13 | this access | MultiImplementationB.cs:18:12:18:13 | call to method | | | MultiImplementationB.cs:18:22:18:36 | {...} | MultiImplementationB.cs:18:30:18:33 | null | | | MultiImplementationB.cs:18:24:18:34 | throw ...; | MultiImplementationA.cs:20:12:20:13 | exit C2 (abnormal) | exception | | MultiImplementationB.cs:18:30:18:33 | null | MultiImplementationB.cs:18:24:18:34 | throw ...; | | @@ -2708,16 +2761,22 @@ | MultiImplementationB.cs:21:56:21:59 | null | MultiImplementationB.cs:21:50:21:59 | throw ... | | | MultiImplementationB.cs:22:16:22:16 | access to property P | MultiImplementationB.cs:22:32:22:34 | ... = ... | | | MultiImplementationB.cs:22:16:22:16 | this access | MultiImplementationB.cs:22:34:22:34 | 1 | | -| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationB.cs:18:22:18:36 | {...} | | +| MultiImplementationB.cs:22:32:22:34 | ... = ... | MultiImplementationA.cs:11:7:11:8 | exit (normal) | | | MultiImplementationB.cs:22:34:22:34 | 1 | MultiImplementationB.cs:22:16:22:16 | access to property P | | | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | MultiImplementationB.cs:25:7:25:8 | {...} | | +| MultiImplementationB.cs:25:7:25:8 | call to method | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | | +| MultiImplementationB.cs:25:7:25:8 | this access | MultiImplementationB.cs:25:7:25:8 | call to method | | | MultiImplementationB.cs:25:7:25:8 | {...} | MultiImplementationA.cs:28:7:28:8 | exit C3 (normal) | | | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | MultiImplementationB.cs:30:15:30:16 | {...} | | +| MultiImplementationB.cs:30:15:30:16 | call to method | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | | +| MultiImplementationB.cs:30:15:30:16 | this access | MultiImplementationB.cs:30:15:30:16 | call to method | | | MultiImplementationB.cs:30:15:30:16 | {...} | MultiImplementationA.cs:34:15:34:16 | exit C4 (normal) | | | MultiImplementationB.cs:32:17:32:17 | 0 | MultiImplementationA.cs:36:9:36:10 | exit M1 (normal) | | | NullCoalescing.cs:1:7:1:20 | call to constructor Object | NullCoalescing.cs:1:7:1:20 | {...} | | -| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | call to method | NullCoalescing.cs:1:7:1:20 | call to constructor Object | | +| NullCoalescing.cs:1:7:1:20 | enter NullCoalescing | NullCoalescing.cs:1:7:1:20 | this access | | | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing | | +| NullCoalescing.cs:1:7:1:20 | this access | NullCoalescing.cs:1:7:1:20 | call to method | | | NullCoalescing.cs:1:7:1:20 | {...} | NullCoalescing.cs:1:7:1:20 | exit NullCoalescing (normal) | | | NullCoalescing.cs:3:9:3:10 | enter M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | | | NullCoalescing.cs:3:9:3:10 | exit M1 (normal) | NullCoalescing.cs:3:9:3:10 | exit M1 | | @@ -2792,31 +2851,32 @@ | NullCoalescing.cs:17:13:17:19 | (...) ... | NullCoalescing.cs:17:13:17:24 | ... ?? ... | non-null | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:17:9:17:24 | ... = ... | | | NullCoalescing.cs:17:19:17:19 | access to parameter i | NullCoalescing.cs:17:13:17:19 | (...) ... | | -| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | | -| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationB.cs:3:16:3:16 | this access | | +| PartialImplementationA.cs:1:15:1:21 | exit (normal) | PartialImplementationA.cs:1:15:1:21 | exit | | +| PartialImplementationA.cs:3:12:3:18 | call to constructor Object | PartialImplementationA.cs:3:27:3:29 | {...} | | +| PartialImplementationA.cs:3:12:3:18 | call to method | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | | +| PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | this access | | | 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 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | -| 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: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:20 | ... = ... | | -| PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:3:16:3:16 | this access | | -| PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | +| 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 | | | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | PartialImplementationB.cs:4:12:4:18 | exit Partial | | +| PartialImplementationB.cs:4:12:4:18 | this access | PartialImplementationB.cs:4:12:4:18 | call to method | | | PartialImplementationB.cs:4:22:4:24 | {...} | PartialImplementationB.cs:4:12:4:18 | exit Partial (normal) | | | PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | | -| PartialImplementationB.cs:5:16:5:16 | access to property P | PartialImplementationB.cs:5:32:5:34 | ... = ... | | | PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | | -| PartialImplementationB.cs:5:16:5:16 | this access | PartialImplementationB.cs:5:34:5:34 | 0 | | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:3:27:3:29 | {...} | | -| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationB.cs:4:22:4:24 | {...} | | -| PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | | +| PartialImplementationB.cs:5:32:5:34 | ... = ... | PartialImplementationA.cs:1:15:1:21 | exit (normal) | | | PartialImplementationB.cs:5:34:5:34 | 0 | PartialImplementationB.cs:5:16:5:16 | access to property P | | | Patterns.cs:3:7:3:14 | call to constructor Object | Patterns.cs:3:7:3:14 | {...} | | -| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | call to constructor Object | | +| Patterns.cs:3:7:3:14 | call to method | Patterns.cs:3:7:3:14 | call to constructor Object | | +| Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | this access | | | Patterns.cs:3:7:3:14 | exit Patterns (normal) | Patterns.cs:3:7:3:14 | exit Patterns | | +| Patterns.cs:3:7:3:14 | this access | Patterns.cs:3:7:3:14 | call to method | | | Patterns.cs:3:7:3:14 | {...} | Patterns.cs:3:7:3:14 | exit Patterns (normal) | | | Patterns.cs:5:10:5:11 | enter M1 | Patterns.cs:6:5:43:5 | {...} | | | Patterns.cs:5:10:5:11 | exit M1 (normal) | Patterns.cs:5:10:5:11 | exit M1 | | @@ -3045,8 +3105,10 @@ | Patterns.cs:97:13:97:39 | ...; | Patterns.cs:97:31:97:37 | "not C" | | | Patterns.cs:97:31:97:37 | "not C" | Patterns.cs:97:13:97:38 | call to method WriteLine | | | PostDominance.cs:3:7:3:19 | call to constructor Object | PostDominance.cs:3:7:3:19 | {...} | | -| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | call to constructor Object | | +| PostDominance.cs:3:7:3:19 | call to method | PostDominance.cs:3:7:3:19 | call to constructor Object | | +| PostDominance.cs:3:7:3:19 | enter PostDominance | PostDominance.cs:3:7:3:19 | this access | | | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | PostDominance.cs:3:7:3:19 | exit PostDominance | | +| PostDominance.cs:3:7:3:19 | this access | PostDominance.cs:3:7:3:19 | call to method | | | PostDominance.cs:3:7:3:19 | {...} | PostDominance.cs:3:7:3:19 | exit PostDominance (normal) | | | PostDominance.cs:5:10:5:11 | enter M1 | PostDominance.cs:6:5:8:5 | {...} | | | PostDominance.cs:5:10:5:11 | exit M1 (normal) | PostDominance.cs:5:10:5:11 | exit M1 | | @@ -3084,8 +3146,10 @@ | PostDominance.cs:21:9:21:29 | ...; | PostDominance.cs:21:27:21:27 | access to parameter s | | | PostDominance.cs:21:27:21:27 | access to parameter s | PostDominance.cs:21:9:21:28 | call to method WriteLine | | | Qualifiers.cs:1:7:1:16 | call to constructor Object | Qualifiers.cs:1:7:1:16 | {...} | | -| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | call to method | Qualifiers.cs:1:7:1:16 | call to constructor Object | | +| Qualifiers.cs:1:7:1:16 | enter Qualifiers | Qualifiers.cs:1:7:1:16 | this access | | | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | Qualifiers.cs:1:7:1:16 | exit Qualifiers | | +| Qualifiers.cs:1:7:1:16 | this access | Qualifiers.cs:1:7:1:16 | call to method | | | Qualifiers.cs:1:7:1:16 | {...} | Qualifiers.cs:1:7:1:16 | exit Qualifiers (normal) | | | Qualifiers.cs:7:16:7:21 | enter Method | Qualifiers.cs:7:28:7:31 | null | | | Qualifiers.cs:7:16:7:21 | exit Method (normal) | Qualifiers.cs:7:16:7:21 | exit Method | | @@ -3151,8 +3215,10 @@ | Qualifiers.cs:30:13:30:37 | call to method StaticMethod | Qualifiers.cs:30:13:30:46 | call to method Method | | | Qualifiers.cs:30:13:30:46 | call to method Method | Qualifiers.cs:30:9:30:46 | ... = ... | | | Switch.cs:3:7:3:12 | call to constructor Object | Switch.cs:3:7:3:12 | {...} | | -| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | call to constructor Object | | +| Switch.cs:3:7:3:12 | call to method | Switch.cs:3:7:3:12 | call to constructor Object | | +| Switch.cs:3:7:3:12 | enter Switch | Switch.cs:3:7:3:12 | this access | | | Switch.cs:3:7:3:12 | exit Switch (normal) | Switch.cs:3:7:3:12 | exit Switch | | +| Switch.cs:3:7:3:12 | this access | Switch.cs:3:7:3:12 | call to method | | | Switch.cs:3:7:3:12 | {...} | Switch.cs:3:7:3:12 | exit Switch (normal) | | | Switch.cs:5:10:5:11 | enter M1 | Switch.cs:6:5:8:5 | {...} | | | Switch.cs:5:10:5:11 | exit M1 (normal) | Switch.cs:5:10:5:11 | exit M1 | | @@ -3478,8 +3544,10 @@ | Switch.cs:175:42:175:46 | "def" | Switch.cs:175:17:175:47 | call to method WriteLine | | | Switch.cs:176:17:176:22 | break; | Switch.cs:163:10:163:12 | exit M16 (normal) | break | | TypeAccesses.cs:1:7:1:18 | call to constructor Object | TypeAccesses.cs:1:7:1:18 | {...} | | -| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | call to method | TypeAccesses.cs:1:7:1:18 | call to constructor Object | | +| TypeAccesses.cs:1:7:1:18 | enter TypeAccesses | TypeAccesses.cs:1:7:1:18 | this access | | | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses | | +| TypeAccesses.cs:1:7:1:18 | this access | TypeAccesses.cs:1:7:1:18 | call to method | | | TypeAccesses.cs:1:7:1:18 | {...} | TypeAccesses.cs:1:7:1:18 | exit TypeAccesses (normal) | | | TypeAccesses.cs:3:10:3:10 | enter M | TypeAccesses.cs:4:5:9:5 | {...} | | | TypeAccesses.cs:3:10:3:10 | exit M (normal) | TypeAccesses.cs:3:10:3:10 | exit M | | @@ -3503,8 +3571,10 @@ | TypeAccesses.cs:8:13:8:27 | Type t = ... | TypeAccesses.cs:3:10:3:10 | exit M (normal) | | | TypeAccesses.cs:8:17:8:27 | typeof(...) | TypeAccesses.cs:8:13:8:27 | Type t = ... | | | VarDecls.cs:3:7:3:14 | call to constructor Object | VarDecls.cs:3:7:3:14 | {...} | | -| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | call to constructor Object | | +| VarDecls.cs:3:7:3:14 | call to method | VarDecls.cs:3:7:3:14 | call to constructor Object | | +| VarDecls.cs:3:7:3:14 | enter VarDecls | VarDecls.cs:3:7:3:14 | this access | | | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | VarDecls.cs:3:7:3:14 | exit VarDecls | | +| VarDecls.cs:3:7:3:14 | this access | VarDecls.cs:3:7:3:14 | call to method | | | VarDecls.cs:3:7:3:14 | {...} | VarDecls.cs:3:7:3:14 | exit VarDecls (normal) | | | VarDecls.cs:5:18:5:19 | enter M1 | VarDecls.cs:6:5:11:5 | {...} | | | VarDecls.cs:5:18:5:19 | exit M1 (normal) | VarDecls.cs:5:18:5:19 | exit M1 | | @@ -3554,8 +3624,10 @@ | VarDecls.cs:25:24:25:24 | access to local variable x | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | | VarDecls.cs:25:28:25:28 | access to local variable y | VarDecls.cs:25:20:25:28 | ... ? ... : ... | | | VarDecls.cs:28:11:28:11 | call to constructor Object | VarDecls.cs:28:11:28:11 | {...} | | -| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | call to constructor Object | | +| VarDecls.cs:28:11:28:11 | call to method | VarDecls.cs:28:11:28:11 | call to constructor Object | | +| VarDecls.cs:28:11:28:11 | enter C | VarDecls.cs:28:11:28:11 | this access | | | VarDecls.cs:28:11:28:11 | exit C (normal) | VarDecls.cs:28:11:28:11 | exit C | | +| VarDecls.cs:28:11:28:11 | this access | VarDecls.cs:28:11:28:11 | call to method | | | VarDecls.cs:28:11:28:11 | {...} | VarDecls.cs:28:11:28:11 | exit C (normal) | | | VarDecls.cs:28:41:28:47 | enter Dispose | VarDecls.cs:28:51:28:53 | {...} | | | VarDecls.cs:28:41:28:47 | exit Dispose (normal) | VarDecls.cs:28:41:28:47 | exit Dispose | | @@ -3855,8 +3927,10 @@ | 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:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | call to constructor Object | | +| 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 | 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) | | @@ -4231,8 +4305,10 @@ | cflow.cs:275:13:275:41 | call to method WriteLine | cflow.cs:261:49:261:53 | exit Yield (normal) | , return | | cflow.cs:275:13:275:42 | ...; | cflow.cs:275:31:275:40 | "not dead" | | | cflow.cs:275:31:275:40 | "not dead" | cflow.cs:275:13:275:41 | call to method WriteLine | | -| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | +| cflow.cs:282:5:282:18 | call to method | cflow.cs:282:24:282:27 | call to constructor ControlFlow | | +| cflow.cs:282:5:282:18 | enter ControlFlowSub | cflow.cs:282:5:282:18 | this access | | | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | cflow.cs:282:5:282:18 | exit ControlFlowSub | | +| cflow.cs:282:5:282:18 | this access | cflow.cs:282:5:282:18 | call to method | | | cflow.cs:282:24:282:27 | call to constructor ControlFlow | cflow.cs:282:31:282:33 | {...} | | | cflow.cs:282:31:282:33 | {...} | cflow.cs:282:5:282:18 | exit ControlFlowSub (normal) | | | cflow.cs:284:5:284:18 | enter ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | | @@ -4246,8 +4322,10 @@ | cflow.cs:286:34:286:45 | call to method ToString | cflow.cs:286:29:286:32 | call to constructor ControlFlowSub | | | cflow.cs:286:48:286:50 | {...} | cflow.cs:286:5:286:18 | exit ControlFlowSub (normal) | | | cflow.cs:289:7:289:18 | call to constructor Object | cflow.cs:289:7:289:18 | {...} | | -| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | call to constructor Object | | +| cflow.cs:289:7:289:18 | call to method | cflow.cs:289:7:289:18 | call to constructor Object | | +| cflow.cs:289:7:289:18 | enter DelegateCall | cflow.cs:289:7:289:18 | this access | | | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | cflow.cs:289:7:289:18 | exit DelegateCall | | +| cflow.cs:289:7:289:18 | this access | cflow.cs:289:7:289:18 | call to method | | | cflow.cs:289:7:289:18 | {...} | cflow.cs:289:7:289:18 | exit DelegateCall (normal) | | | cflow.cs:291:12:291:12 | enter M | cflow.cs:291:38:291:38 | access to parameter f | | | cflow.cs:291:12:291:12 | exit M (normal) | cflow.cs:291:12:291:12 | exit M | | @@ -4255,8 +4333,10 @@ | cflow.cs:291:38:291:41 | delegate call | cflow.cs:291:12:291:12 | exit M (normal) | | | cflow.cs:291:40:291:40 | 0 | cflow.cs:291:38:291:41 | delegate call | | | cflow.cs:296:5:296:25 | call to constructor Object | cflow.cs:296:52:296:54 | {...} | | -| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | call to constructor Object | | +| cflow.cs:296:5:296:25 | call to method | cflow.cs:296:5:296:25 | call to constructor Object | | +| cflow.cs:296:5:296:25 | enter NegationInConstructor | cflow.cs:296:5:296:25 | this access | | | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | cflow.cs:296:5:296:25 | exit NegationInConstructor | | +| cflow.cs:296:5:296:25 | this access | cflow.cs:296:5:296:25 | call to method | | | cflow.cs:296:52:296:54 | {...} | cflow.cs:296:5:296:25 | exit NegationInConstructor (normal) | | | cflow.cs:298:10:298:10 | enter M | cflow.cs:299:5:301:5 | {...} | | | cflow.cs:298:10:298:10 | exit M (normal) | cflow.cs:298:10:298:10 | exit M | | @@ -4276,8 +4356,10 @@ | cflow.cs:300:61:300:64 | null | cflow.cs:300:56:300:64 | ... != ... | | | cflow.cs:300:70:300:71 | "" | cflow.cs:300:9:300:72 | object creation of type NegationInConstructor | | | cflow.cs:304:7:304:18 | call to constructor Object | cflow.cs:304:7:304:18 | {...} | | -| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | call to constructor Object | | +| cflow.cs:304:7:304:18 | call to method | cflow.cs:304:7:304:18 | call to constructor Object | | +| cflow.cs:304:7:304:18 | enter LambdaGetter | cflow.cs:304:7:304:18 | this access | | | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | cflow.cs:304:7:304:18 | exit LambdaGetter | | +| cflow.cs:304:7:304:18 | this access | cflow.cs:304:7:304:18 | call to method | | | cflow.cs:304:7:304:18 | {...} | cflow.cs:304:7:304:18 | exit LambdaGetter (normal) | | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:306:60:310:5 | exit get__getter (normal) | | | cflow.cs:306:60:310:5 | enter (...) => ... | cflow.cs:307:5:310:5 | {...} | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index 26e8d074b19..aff87481461 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -1,4 +1,4 @@ -| AccessorCalls.cs:1:7:1:19 | AccessorCalls | AccessorCalls.cs:1:7:1:19 | call to constructor Object | +| AccessorCalls.cs:1:7:1:19 | AccessorCalls | AccessorCalls.cs:1:7:1:19 | this access | | AccessorCalls.cs:5:23:5:25 | get_Item | AccessorCalls.cs:5:30:5:30 | access to parameter i | | AccessorCalls.cs:5:33:5:35 | set_Item | AccessorCalls.cs:5:37:5:39 | {...} | | AccessorCalls.cs:7:32:7:34 | add_Event | AccessorCalls.cs:7:36:7:38 | {...} | @@ -12,12 +12,12 @@ | AccessorCalls.cs:56:10:56:11 | M7 | AccessorCalls.cs:57:5:59:5 | {...} | | AccessorCalls.cs:61:10:61:11 | M8 | AccessorCalls.cs:62:5:64:5 | {...} | | AccessorCalls.cs:66:10:66:11 | M9 | AccessorCalls.cs:67:5:74:5 | {...} | -| ArrayCreation.cs:1:7:1:19 | ArrayCreation | ArrayCreation.cs:1:7:1:19 | call to constructor Object | +| ArrayCreation.cs:1:7:1:19 | ArrayCreation | ArrayCreation.cs:1:7:1:19 | this access | | ArrayCreation.cs:3:11:3:12 | M1 | ArrayCreation.cs:3:27:3:27 | 0 | | ArrayCreation.cs:5:12:5:13 | M2 | ArrayCreation.cs:5:28:5:28 | 0 | | ArrayCreation.cs:7:11:7:12 | M3 | ArrayCreation.cs:7:19:7:36 | 2 | | ArrayCreation.cs:9:12:9:13 | M4 | ArrayCreation.cs:9:20:9:52 | 2 | -| Assert.cs:5:7:5:17 | AssertTests | Assert.cs:5:7:5:17 | call to constructor Object | +| Assert.cs:5:7:5:17 | AssertTests | Assert.cs:5:7:5:17 | this access | | Assert.cs:7:10:7:11 | M1 | Assert.cs:8:5:12:5 | {...} | | Assert.cs:14:10:14:11 | M2 | Assert.cs:15:5:19:5 | {...} | | Assert.cs:21:10:21:11 | M3 | Assert.cs:22:5:26:5 | {...} | @@ -32,23 +32,23 @@ | Assert.cs:84:10:84:12 | M12 | Assert.cs:85:5:129:5 | {...} | | Assert.cs:131:18:131:32 | AssertTrueFalse | Assert.cs:135:5:136:5 | {...} | | Assert.cs:138:10:138:12 | M13 | Assert.cs:139:5:142:5 | {...} | -| Assignments.cs:1:7:1:17 | Assignments | Assignments.cs:1:7:1:17 | call to constructor Object | +| Assignments.cs:1:7:1:17 | Assignments | Assignments.cs:1:7:1:17 | this access | | 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 | {...} | -| BreakInTry.cs:1:7:1:16 | BreakInTry | BreakInTry.cs:1:7:1:16 | call to constructor Object | +| 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 | {...} | | BreakInTry.cs:38:10:38:11 | M3 | BreakInTry.cs:39:5:54:5 | {...} | | BreakInTry.cs:56:10:56:11 | M4 | BreakInTry.cs:57:5:71:5 | {...} | -| CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | call to constructor Object | +| CompileTimeOperators.cs:3:7:3:26 | CompileTimeOperators | CompileTimeOperators.cs:3:7:3:26 | this access | | CompileTimeOperators.cs:5:9:5:15 | Default | CompileTimeOperators.cs:6:5:8:5 | {...} | | CompileTimeOperators.cs:10:9:10:14 | Sizeof | CompileTimeOperators.cs:11:5:13:5 | {...} | | CompileTimeOperators.cs:15:10:15:15 | Typeof | CompileTimeOperators.cs:16:5:18:5 | {...} | | CompileTimeOperators.cs:20:12:20:17 | Nameof | CompileTimeOperators.cs:21:5:23:5 | {...} | -| CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | call to constructor Object | +| CompileTimeOperators.cs:26:7:26:22 | GotoInTryFinally | CompileTimeOperators.cs:26:7:26:22 | this access | | CompileTimeOperators.cs:28:10:28:10 | M | CompileTimeOperators.cs:29:5:41:5 | {...} | -| ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | call to constructor Object | +| ConditionalAccess.cs:1:7:1:23 | ConditionalAccess | ConditionalAccess.cs:1:7:1:23 | this access | | ConditionalAccess.cs:3:12:3:13 | M1 | ConditionalAccess.cs:3:26:3:26 | access to parameter i | | ConditionalAccess.cs:5:10:5:11 | M2 | ConditionalAccess.cs:5:26:5:26 | access to parameter s | | ConditionalAccess.cs:7:10:7:11 | M3 | ConditionalAccess.cs:7:39:7:40 | access to parameter s1 | @@ -59,7 +59,7 @@ | 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 | -| Conditions.cs:1:7:1:16 | Conditions | Conditions.cs:1:7:1:16 | call to constructor Object | +| 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 | {...} | | Conditions.cs:22:9:22:10 | M2 | Conditions.cs:23:5:31:5 | {...} | @@ -72,7 +72,7 @@ | Conditions.cs:113:10:113:11 | M9 | Conditions.cs:114:5:124:5 | {...} | | Conditions.cs:129:10:129:12 | M10 | Conditions.cs:130:5:141:5 | {...} | | Conditions.cs:143:10:143:12 | M11 | Conditions.cs:144:5:150:5 | {...} | -| ExitMethods.cs:6:7:6:17 | ExitMethods | ExitMethods.cs:6:7:6:17 | call to constructor Object | +| ExitMethods.cs:6:7:6:17 | ExitMethods | ExitMethods.cs:6:7:6:17 | this access | | ExitMethods.cs:8:10:8:11 | M1 | ExitMethods.cs:9:5:12:5 | {...} | | ExitMethods.cs:14:10:14:11 | M2 | ExitMethods.cs:15:5:18:5 | {...} | | ExitMethods.cs:20:10:20:11 | M3 | ExitMethods.cs:21:5:24:5 | {...} | @@ -99,7 +99,7 @@ | Extensions.cs:10:24:10:29 | ToBool | Extensions.cs:11:5:13:5 | {...} | | Extensions.cs:15:23:15:33 | CallToInt32 | Extensions.cs:15:48:15:50 | "0" | | Extensions.cs:20:17:20:20 | Main | Extensions.cs:21:5:26:5 | {...} | -| Finally.cs:3:14:3:20 | Finally | Finally.cs:3:14:3:20 | call to constructor Object | +| Finally.cs:3:14:3:20 | Finally | Finally.cs:3:14:3:20 | this access | | Finally.cs:7:10:7:11 | M1 | Finally.cs:8:5:17:5 | {...} | | Finally.cs:19:10:19:11 | M2 | Finally.cs:20:5:52:5 | {...} | | Finally.cs:54:10:54:11 | M3 | Finally.cs:55:5:72:5 | {...} | @@ -108,33 +108,36 @@ | Finally.cs:121:10:121:11 | M6 | Finally.cs:122:5:131:5 | {...} | | Finally.cs:133:10:133:11 | M7 | Finally.cs:134:5:145:5 | {...} | | Finally.cs:147:10:147:11 | M8 | Finally.cs:148:5:170:5 | {...} | -| Finally.cs:172:11:172:20 | ExceptionA | Finally.cs:172:11:172:20 | call to constructor Exception | -| Finally.cs:173:11:173:20 | ExceptionB | Finally.cs:173:11:173:20 | call to constructor Exception | -| Finally.cs:174:11:174:20 | ExceptionC | Finally.cs:174:11:174:20 | call to constructor Exception | +| Finally.cs:172:11:172:20 | ExceptionA | Finally.cs:172:11:172:20 | this access | +| Finally.cs:173:11:173:20 | ExceptionB | Finally.cs:173:11:173:20 | this access | +| Finally.cs:174:11:174:20 | ExceptionC | Finally.cs:174:11:174:20 | this access | | Finally.cs:176:10:176:11 | M9 | Finally.cs:177:5:193:5 | {...} | | Finally.cs:195:10:195:12 | M10 | Finally.cs:196:5:214:5 | {...} | | Finally.cs:216:10:216:12 | M11 | Finally.cs:217:5:231:5 | {...} | | Finally.cs:233:10:233:12 | M12 | Finally.cs:234:5:261:5 | {...} | | Finally.cs:263:10:263:12 | M13 | Finally.cs:264:5:274:5 | {...} | -| Foreach.cs:4:7:4:13 | Foreach | Foreach.cs:4:7:4:13 | call to constructor Object | +| Foreach.cs:4:7:4:13 | Foreach | Foreach.cs:4:7:4:13 | this access | | Foreach.cs:6:10:6:11 | M1 | Foreach.cs:7:5:10:5 | {...} | | Foreach.cs:12:10:12:11 | M2 | Foreach.cs:13:5:16:5 | {...} | | Foreach.cs:18:10:18:11 | M3 | Foreach.cs:19:5:22:5 | {...} | | Foreach.cs:24:10:24:11 | M4 | Foreach.cs:25:5:28:5 | {...} | | Foreach.cs:30:10:30:11 | M5 | Foreach.cs:31:5:34:5 | {...} | | Foreach.cs:36:10:36:11 | M6 | Foreach.cs:37:5:40:5 | {...} | +| Initializers.cs:3:7:3:18 | | Initializers.cs:5:9:5:9 | this access | | Initializers.cs:3:7:3:18 | Initializers | Initializers.cs:3:7:3:18 | {...} | -| Initializers.cs:8:5:8:16 | Initializers | Initializers.cs:8:5:8:16 | call to constructor Object | -| Initializers.cs:10:5:10:16 | Initializers | Initializers.cs:10:5:10:16 | call to constructor Object | +| Initializers.cs:8:5:8:16 | Initializers | Initializers.cs:8:5:8:16 | this access | +| Initializers.cs:10:5:10:16 | Initializers | Initializers.cs:10:5:10:16 | this access | | Initializers.cs:12:10:12:10 | M | Initializers.cs:13:5:16:5 | {...} | -| Initializers.cs:20:11:20:23 | NoConstructor | Initializers.cs:20:11:20:23 | call to constructor Object | -| Initializers.cs:31:9:31:11 | Sub | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:20:11:20:23 | | Initializers.cs:22:23:22:23 | this access | +| Initializers.cs:20:11:20:23 | NoConstructor | Initializers.cs:20:11:20:23 | this access | +| Initializers.cs:26:11:26:13 | | Initializers.cs:28:13:28:13 | this access | +| Initializers.cs:31:9:31:11 | Sub | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:33:9:33:11 | Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | -| Initializers.cs:35:9:35:11 | Sub | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | -| Initializers.cs:39:7:39:23 | IndexInitializers | Initializers.cs:39:7:39:23 | call to constructor Object | -| Initializers.cs:41:11:41:18 | Compound | Initializers.cs:41:11:41:18 | call to constructor Object | +| Initializers.cs:35:9:35:11 | Sub | Initializers.cs:35:9:35:11 | this access | +| Initializers.cs:39:7:39:23 | IndexInitializers | Initializers.cs:39:7:39:23 | this access | +| Initializers.cs:41:11:41:18 | Compound | Initializers.cs:41:11:41:18 | this access | | Initializers.cs:51:10:51:13 | Test | Initializers.cs:52:5:66:5 | {...} | -| LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | +| LoopUnrolling.cs:5:7:5:19 | LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | LoopUnrolling.cs:7:10:7:11 | M1 | LoopUnrolling.cs:8:5:13:5 | {...} | | LoopUnrolling.cs:15:10:15:11 | M2 | LoopUnrolling.cs:16:5:20:5 | {...} | | LoopUnrolling.cs:22:10:22:11 | M3 | LoopUnrolling.cs:23:5:27:5 | {...} | @@ -146,8 +149,8 @@ | LoopUnrolling.cs:76:10:76:11 | M9 | LoopUnrolling.cs:77:5:83:5 | {...} | | LoopUnrolling.cs:85:10:85:12 | M10 | LoopUnrolling.cs:86:5:92:5 | {...} | | LoopUnrolling.cs:94:10:94:12 | M11 | LoopUnrolling.cs:95:5:101:5 | {...} | -| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationA.cs:4:7:4:8 | call to constructor Object | -| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationB.cs:1:7:1:8 | call to constructor Object | +| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationA.cs:4:7:4:8 | this access | +| MultiImplementationA.cs:4:7:4:8 | C1 | MultiImplementationB.cs:1:7:1:8 | this access | | MultiImplementationA.cs:6:22:6:31 | get_P1 | MultiImplementationA.cs:6:28:6:31 | null | | MultiImplementationA.cs:6:22:6:31 | get_P1 | MultiImplementationB.cs:3:22:3:22 | 0 | | MultiImplementationA.cs:7:21:7:23 | get_P2 | MultiImplementationA.cs:7:25:7:39 | {...} | @@ -156,6 +159,8 @@ | MultiImplementationA.cs:7:41:7:43 | set_P2 | MultiImplementationB.cs:4:43:4:45 | {...} | | MultiImplementationA.cs:8:16:8:16 | M | MultiImplementationA.cs:8:29:8:32 | null | | MultiImplementationA.cs:8:16:8:16 | M | MultiImplementationB.cs:5:23:5:23 | 2 | +| MultiImplementationA.cs:11:7:11:8 | | MultiImplementationA.cs:13:16:13:16 | this access | +| MultiImplementationA.cs:11:7:11:8 | | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationA.cs:14:31:14:31 | get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | get_Item | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationA.cs:15:36:15:38 | get_Item | MultiImplementationA.cs:15:40:15:52 | {...} | @@ -165,33 +170,34 @@ | MultiImplementationA.cs:16:17:16:18 | M1 | MultiImplementationA.cs:17:5:19:5 | {...} | | MultiImplementationA.cs:16:17:16:18 | M1 | MultiImplementationB.cs:15:5:17:5 | {...} | | MultiImplementationA.cs:18:9:18:22 | M2 | MultiImplementationA.cs:18:21:18:21 | 0 | -| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | -| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationB.cs:18:12:18:13 | call to constructor Object | +| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationA.cs:20:12:20:13 | this access | +| MultiImplementationA.cs:20:12:20:13 | C2 | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationA.cs:21:12:21:13 | C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | MultiImplementationA.cs:21:12:21:13 | C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationA.cs:22:6:22:7 | ~C2 | MultiImplementationA.cs:22:11:22:13 | {...} | | MultiImplementationA.cs:22:6:22:7 | ~C2 | MultiImplementationB.cs:20:11:20:25 | {...} | | MultiImplementationA.cs:23:28:23:35 | implicit conversion | MultiImplementationA.cs:23:50:23:53 | null | | MultiImplementationA.cs:23:28:23:35 | implicit conversion | MultiImplementationB.cs:21:56:21:59 | null | -| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationA.cs:28:7:28:8 | call to constructor Object | -| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationB.cs:25:7:25:8 | call to constructor Object | +| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationA.cs:28:7:28:8 | this access | +| MultiImplementationA.cs:28:7:28:8 | C3 | MultiImplementationB.cs:25:7:25:8 | this access | | MultiImplementationA.cs:30:21:30:23 | get_P3 | MultiImplementationA.cs:30:34:30:37 | null | -| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationA.cs:34:15:34:16 | call to constructor Object | -| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationB.cs:30:15:30:16 | call to constructor Object | +| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationA.cs:34:15:34:16 | this access | +| MultiImplementationA.cs:34:15:34:16 | C4 | MultiImplementationB.cs:30:15:30:16 | this access | | MultiImplementationA.cs:36:9:36:10 | M1 | MultiImplementationA.cs:36:14:36:28 | {...} | | MultiImplementationA.cs:36:9:36:10 | M1 | MultiImplementationB.cs:32:17:32:17 | 0 | | MultiImplementationA.cs:37:9:37:10 | M2 | MultiImplementationA.cs:37:14:37:28 | {...} | | MultiImplementationB.cs:16:9:16:31 | M2 | MultiImplementationB.cs:16:27:16:30 | null | -| NullCoalescing.cs:1:7:1:20 | NullCoalescing | NullCoalescing.cs:1:7:1:20 | call to constructor Object | +| NullCoalescing.cs:1:7:1:20 | NullCoalescing | NullCoalescing.cs:1:7:1:20 | this access | | NullCoalescing.cs:3:9:3:10 | M1 | NullCoalescing.cs:3:23:3:23 | access to parameter i | | NullCoalescing.cs:5:9:5:10 | M2 | NullCoalescing.cs:5:25:5:25 | access to parameter b | | NullCoalescing.cs:7:12:7:13 | M3 | NullCoalescing.cs:7:40:7:41 | access to parameter s1 | | NullCoalescing.cs:9:12:9:13 | M4 | NullCoalescing.cs:9:37:9:37 | access to parameter b | | NullCoalescing.cs:11:9:11:10 | M5 | NullCoalescing.cs:11:44:11:45 | access to parameter b1 | | NullCoalescing.cs:13:10:13:11 | M6 | NullCoalescing.cs:14:5:18:5 | {...} | -| PartialImplementationA.cs:3:12:3:18 | Partial | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | -| PartialImplementationB.cs:4:12:4:18 | Partial | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | -| Patterns.cs:3:7:3:14 | Patterns | Patterns.cs:3:7:3:14 | call to constructor Object | +| PartialImplementationA.cs:1:15:1:21 | | PartialImplementationB.cs:3:16:3:16 | this access | +| PartialImplementationA.cs:3:12:3:18 | Partial | PartialImplementationA.cs:3:12:3:18 | this access | +| PartialImplementationB.cs:4:12:4:18 | Partial | PartialImplementationB.cs:4:12:4:18 | this access | +| Patterns.cs:3:7:3:14 | Patterns | Patterns.cs:3:7:3:14 | this access | | Patterns.cs:5:10:5:11 | M1 | Patterns.cs:6:5:43:5 | {...} | | Patterns.cs:47:24:47:25 | M2 | Patterns.cs:48:9:48:9 | access to parameter c | | Patterns.cs:50:24:50:25 | M3 | Patterns.cs:51:9:51:9 | access to parameter c | @@ -202,15 +208,15 @@ | Patterns.cs:85:26:85:27 | M8 | Patterns.cs:85:39:85:39 | access to parameter i | | Patterns.cs:87:26:87:27 | M9 | Patterns.cs:87:39:87:39 | access to parameter i | | Patterns.cs:93:17:93:19 | M10 | Patterns.cs:94:5:99:5 | {...} | -| PostDominance.cs:3:7:3:19 | PostDominance | PostDominance.cs:3:7:3:19 | call to constructor Object | +| PostDominance.cs:3:7:3:19 | PostDominance | PostDominance.cs:3:7:3:19 | this access | | PostDominance.cs:5:10:5:11 | M1 | PostDominance.cs:6:5:8:5 | {...} | | PostDominance.cs:10:10:10:11 | M2 | PostDominance.cs:11:5:15:5 | {...} | | PostDominance.cs:17:10:17:11 | M3 | PostDominance.cs:18:5:22:5 | {...} | -| Qualifiers.cs:1:7:1:16 | Qualifiers | Qualifiers.cs:1:7:1:16 | call to constructor Object | +| Qualifiers.cs:1:7:1:16 | Qualifiers | Qualifiers.cs:1:7:1:16 | this access | | Qualifiers.cs:7:16:7:21 | Method | Qualifiers.cs:7:28:7:31 | null | | Qualifiers.cs:8:23:8:34 | StaticMethod | Qualifiers.cs:8:41:8:44 | null | | Qualifiers.cs:10:10:10:10 | M | Qualifiers.cs:11:5:31:5 | {...} | -| Switch.cs:3:7:3:12 | Switch | Switch.cs:3:7:3:12 | call to constructor Object | +| Switch.cs:3:7:3:12 | Switch | Switch.cs:3:7:3:12 | this access | | Switch.cs:5:10:5:11 | M1 | Switch.cs:6:5:8:5 | {...} | | Switch.cs:10:10:10:11 | M2 | Switch.cs:11:5:33:5 | {...} | | Switch.cs:35:10:35:11 | M3 | Switch.cs:36:5:42:5 | {...} | @@ -228,13 +234,13 @@ | Switch.cs:144:9:144:11 | M14 | Switch.cs:145:5:152:5 | {...} | | Switch.cs:154:10:154:12 | M15 | Switch.cs:155:5:161:5 | {...} | | Switch.cs:163:10:163:12 | M16 | Switch.cs:164:5:178:5 | {...} | -| TypeAccesses.cs:1:7:1:18 | TypeAccesses | TypeAccesses.cs:1:7:1:18 | call to constructor Object | +| TypeAccesses.cs:1:7:1:18 | TypeAccesses | TypeAccesses.cs:1:7:1:18 | this access | | TypeAccesses.cs:3:10:3:10 | M | TypeAccesses.cs:4:5:9:5 | {...} | -| VarDecls.cs:3:7:3:14 | VarDecls | VarDecls.cs:3:7:3:14 | call to constructor Object | +| VarDecls.cs:3:7:3:14 | VarDecls | VarDecls.cs:3:7:3:14 | this access | | VarDecls.cs:5:18:5:19 | M1 | VarDecls.cs:6:5:11:5 | {...} | | VarDecls.cs:13:12:13:13 | M2 | VarDecls.cs:14:5:17:5 | {...} | | VarDecls.cs:19:7:19:8 | M3 | VarDecls.cs:20:5:26:5 | {...} | -| VarDecls.cs:28:11:28:11 | C | VarDecls.cs:28:11:28:11 | call to constructor Object | +| VarDecls.cs:28:11:28:11 | C | VarDecls.cs:28:11:28:11 | this access | | VarDecls.cs:28:41:28:47 | Dispose | VarDecls.cs:28:51:28:53 | {...} | | cflow.cs:5:17:5:20 | Main | cflow.cs:6:5:35:5 | {...} | | cflow.cs:37:17:37:22 | Switch | cflow.cs:38:5:68:5 | {...} | @@ -245,7 +251,7 @@ | cflow.cs:119:20:119:21 | M5 | cflow.cs:120:5:124:5 | {...} | | cflow.cs:127:19:127:21 | get_Prop | cflow.cs:127:23:127:60 | {...} | | cflow.cs:127:62:127:64 | set_Prop | cflow.cs:127:66:127:83 | {...} | -| cflow.cs:129:5:129:15 | ControlFlow | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:129:5:129:15 | ControlFlow | cflow.cs:129:5:129:15 | this access | | cflow.cs:134:5:134:15 | ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | cflow.cs:136:12:136:22 | ControlFlow | cflow.cs:136:33:136:33 | 0 | | cflow.cs:138:40:138:40 | + | cflow.cs:139:5:142:5 | {...} | @@ -261,13 +267,13 @@ | cflow.cs:224:10:224:16 | Foreach | cflow.cs:225:5:238:5 | {...} | | cflow.cs:240:10:240:13 | Goto | cflow.cs:241:5:259:5 | {...} | | cflow.cs:261:49:261:53 | Yield | cflow.cs:262:5:277:5 | {...} | -| cflow.cs:282:5:282:18 | ControlFlowSub | cflow.cs:282:24:282:27 | call to constructor ControlFlow | +| cflow.cs:282:5:282:18 | ControlFlowSub | cflow.cs:282:5:282:18 | this access | | cflow.cs:284:5:284:18 | ControlFlowSub | cflow.cs:284:32:284:35 | call to constructor ControlFlowSub | | cflow.cs:286:5:286:18 | ControlFlowSub | cflow.cs:286:34:286:34 | access to parameter i | -| cflow.cs:289:7:289:18 | DelegateCall | cflow.cs:289:7:289:18 | call to constructor Object | +| cflow.cs:289:7:289:18 | DelegateCall | cflow.cs:289:7:289:18 | this access | | cflow.cs:291:12:291:12 | M | cflow.cs:291:38:291:38 | access to parameter f | -| cflow.cs:296:5:296:25 | NegationInConstructor | cflow.cs:296:5:296:25 | call to constructor Object | +| cflow.cs:296:5:296:25 | NegationInConstructor | cflow.cs:296:5:296:25 | this access | | cflow.cs:298:10:298:10 | M | cflow.cs:299:5:301:5 | {...} | -| cflow.cs:304:7:304:18 | LambdaGetter | cflow.cs:304:7:304:18 | call to constructor Object | +| cflow.cs:304:7:304:18 | LambdaGetter | cflow.cs:304:7:304:18 | this access | | cflow.cs:306:60:310:5 | (...) => ... | cflow.cs:307:5:310:5 | {...} | | cflow.cs:306:60:310:5 | get__getter | cflow.cs:306:60:310:5 | (...) => ... | diff --git a/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected b/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected index a930349e930..712e379e331 100644 --- a/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected +++ b/csharp/ql/test/library-tests/controlflow/guards/AbstractValue.expected @@ -117,6 +117,8 @@ | not | Guards.cs:162:24:162:24 | access to parameter o | | not | Guards.cs:285:17:285:17 | access to parameter o | | not | Guards.cs:287:17:287:17 | access to parameter o | +| not null | Assert.cs:5:7:5:17 | call to method | +| not null | Assert.cs:5:7:5:17 | this access | | not null | Assert.cs:9:20:9:20 | access to parameter b | | not null | Assert.cs:9:31:9:32 | "" | | not null | Assert.cs:10:9:10:13 | access to type Debug | @@ -228,6 +230,8 @@ | not null | Assert.cs:94:16:94:24 | ... && ... | | not null | Assert.cs:94:22:94:24 | !... | | not null | Assert.cs:94:23:94:24 | access to parameter b2 | +| not null | Collections.cs:7:14:7:24 | call to method | +| not null | Collections.cs:7:14:7:24 | this access | | not null | Collections.cs:11:13:11:13 | access to local variable b | | not null | Collections.cs:11:13:11:32 | Boolean b = ... | | not null | Collections.cs:11:17:11:20 | access to parameter args | @@ -496,6 +500,8 @@ | not null | Collections.cs:102:9:102:15 | access to type Console | | not null | Collections.cs:102:9:102:31 | call to method WriteLine | | not null | Collections.cs:102:27:102:30 | access to parameter args | +| not null | Guards.cs:3:14:3:19 | call to method | +| not null | Guards.cs:3:14:3:19 | this access | | not null | Guards.cs:10:13:10:25 | !... | | not null | Guards.cs:10:14:10:25 | !... | | not null | Guards.cs:10:16:10:24 | ... == ... | diff --git a/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected b/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected index 47f1db09efe..89a12e9a170 100644 --- a/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected +++ b/csharp/ql/test/library-tests/conversion/operator/PrintAst.expected @@ -1,6 +1,6 @@ Operator.cs: # 3| [Class] C -# 5| 5: [ImplicitConversionOperator] implicit conversion +# 5| 6: [ImplicitConversionOperator] implicit conversion # 5| -1: [TypeMention] C #-----| 2: (Parameters) # 5| 0: [Parameter] i @@ -8,11 +8,11 @@ Operator.cs: # 5| 4: [BlockStmt] {...} # 5| 0: [ReturnStmt] return ...; # 5| 0: [NullLiteral] null -# 7| 6: [Field] x1 +# 7| 7: [Field] x1 # 7| -1: [TypeMention] int -# 8| 7: [Field] x2 +# 8| 8: [Field] x2 # 8| -1: [TypeMention] C -# 11| 8: [Method] M +# 11| 9: [Method] M # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [ExprStmt] ...; diff --git a/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected b/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected index 34f517f59bb..5db33c2a421 100644 --- a/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected +++ b/csharp/ql/test/library-tests/csharp10/fileScopedNamespace.expected @@ -1,4 +1,5 @@ fileScopedNamespace +| FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:3:14:3:39 | | | FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:3:14:3:39 | MyFileScopedNamespaceClass | | FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:5:29:5:35 | myField | | FileScopedNamespace.cs:1:11:1:31 | MyFileScopedNamespace | FileScopedNamespace.cs:6:19:6:24 | MyProp | diff --git a/csharp/ql/test/library-tests/csharp11/PrintAst.expected b/csharp/ql/test/library-tests/csharp11/PrintAst.expected index 1de7ff42928..391c41540ec 100644 --- a/csharp/ql/test/library-tests/csharp11/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp11/PrintAst.expected @@ -1,10 +1,10 @@ CheckedOperators.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Number -# 5| 4: [Property] Value +# 5| 5: [Property] Value # 5| -1: [TypeMention] int # 5| 3: [Getter] get_Value -# 7| 5: [InstanceConstructor] Number +# 7| 6: [InstanceConstructor] Number #-----| 2: (Parameters) # 7| 0: [Parameter] n # 7| -1: [TypeMention] int @@ -12,7 +12,7 @@ CheckedOperators.cs: # 7| 0: [PropertyCall] access to property Value # 7| -1: [ThisAccess] this access # 7| 1: [ParameterAccess] access to parameter n -# 9| 6: [CheckedAddOperator] checked + +# 9| 7: [CheckedAddOperator] checked + # 9| -1: [TypeMention] Number #-----| 2: (Parameters) # 9| 0: [Parameter] n1 @@ -27,7 +27,7 @@ CheckedOperators.cs: # 10| -1: [ParameterAccess] access to parameter n1 # 10| 1: [PropertyCall] access to property Value # 10| -1: [ParameterAccess] access to parameter n2 -# 12| 7: [AddOperator] + +# 12| 8: [AddOperator] + # 12| -1: [TypeMention] Number #-----| 2: (Parameters) # 12| 0: [Parameter] n1 @@ -41,7 +41,7 @@ CheckedOperators.cs: # 13| -1: [ParameterAccess] access to parameter n1 # 13| 1: [PropertyCall] access to property Value # 13| -1: [ParameterAccess] access to parameter n2 -# 15| 8: [CheckedSubOperator] checked - +# 15| 9: [CheckedSubOperator] checked - # 15| -1: [TypeMention] Number #-----| 2: (Parameters) # 15| 0: [Parameter] n1 @@ -56,7 +56,7 @@ CheckedOperators.cs: # 16| -1: [ParameterAccess] access to parameter n1 # 16| 1: [PropertyCall] access to property Value # 16| -1: [ParameterAccess] access to parameter n2 -# 18| 9: [SubOperator] - +# 18| 10: [SubOperator] - # 18| -1: [TypeMention] Number #-----| 2: (Parameters) # 18| 0: [Parameter] n1 @@ -70,7 +70,7 @@ CheckedOperators.cs: # 19| -1: [ParameterAccess] access to parameter n1 # 19| 1: [PropertyCall] access to property Value # 19| -1: [ParameterAccess] access to parameter n2 -# 21| 10: [CheckedMulOperator] checked * +# 21| 11: [CheckedMulOperator] checked * # 21| -1: [TypeMention] Number #-----| 2: (Parameters) # 21| 0: [Parameter] n1 @@ -85,7 +85,7 @@ CheckedOperators.cs: # 22| -1: [ParameterAccess] access to parameter n1 # 22| 1: [PropertyCall] access to property Value # 22| -1: [ParameterAccess] access to parameter n2 -# 24| 11: [MulOperator] * +# 24| 12: [MulOperator] * # 24| -1: [TypeMention] Number #-----| 2: (Parameters) # 24| 0: [Parameter] n1 @@ -99,7 +99,7 @@ CheckedOperators.cs: # 25| -1: [ParameterAccess] access to parameter n1 # 25| 1: [PropertyCall] access to property Value # 25| -1: [ParameterAccess] access to parameter n2 -# 27| 12: [CheckedDivOperator] checked / +# 27| 13: [CheckedDivOperator] checked / # 27| -1: [TypeMention] Number #-----| 2: (Parameters) # 27| 0: [Parameter] n1 @@ -114,7 +114,7 @@ CheckedOperators.cs: # 28| -1: [ParameterAccess] access to parameter n1 # 28| 1: [PropertyCall] access to property Value # 28| -1: [ParameterAccess] access to parameter n2 -# 30| 13: [DivOperator] / +# 30| 14: [DivOperator] / # 30| -1: [TypeMention] Number #-----| 2: (Parameters) # 30| 0: [Parameter] n1 @@ -128,7 +128,7 @@ CheckedOperators.cs: # 31| -1: [ParameterAccess] access to parameter n1 # 31| 1: [PropertyCall] access to property Value # 31| -1: [ParameterAccess] access to parameter n2 -# 33| 14: [CheckedMinusOperator] checked - +# 33| 15: [CheckedMinusOperator] checked - # 33| -1: [TypeMention] Number #-----| 2: (Parameters) # 33| 0: [Parameter] n @@ -139,7 +139,7 @@ CheckedOperators.cs: # 34| 0: [UnaryMinusExpr] -... # 34| 0: [PropertyCall] access to property Value # 34| -1: [ParameterAccess] access to parameter n -# 36| 15: [MinusOperator] - +# 36| 16: [MinusOperator] - # 36| -1: [TypeMention] Number #-----| 2: (Parameters) # 36| 0: [Parameter] n @@ -149,7 +149,7 @@ CheckedOperators.cs: # 37| 0: [UnaryMinusExpr] -... # 37| 0: [PropertyCall] access to property Value # 37| -1: [ParameterAccess] access to parameter n -# 39| 16: [CheckedIncrementOperator] checked ++ +# 39| 17: [CheckedIncrementOperator] checked ++ # 39| -1: [TypeMention] Number #-----| 2: (Parameters) # 39| 0: [Parameter] n @@ -161,7 +161,7 @@ CheckedOperators.cs: # 40| 0: [PropertyCall] access to property Value # 40| -1: [ParameterAccess] access to parameter n # 40| 1: [IntLiteral] 1 -# 42| 17: [IncrementOperator] ++ +# 42| 18: [IncrementOperator] ++ # 42| -1: [TypeMention] Number #-----| 2: (Parameters) # 42| 0: [Parameter] n @@ -172,7 +172,7 @@ CheckedOperators.cs: # 43| 0: [PropertyCall] access to property Value # 43| -1: [ParameterAccess] access to parameter n # 43| 1: [IntLiteral] 1 -# 45| 18: [CheckedDecrementOperator] checked -- +# 45| 19: [CheckedDecrementOperator] checked -- # 45| -1: [TypeMention] Number #-----| 2: (Parameters) # 45| 0: [Parameter] n @@ -184,7 +184,7 @@ CheckedOperators.cs: # 46| 0: [PropertyCall] access to property Value # 46| -1: [ParameterAccess] access to parameter n # 46| 1: [IntLiteral] 1 -# 48| 19: [DecrementOperator] -- +# 48| 20: [DecrementOperator] -- # 48| -1: [TypeMention] Number #-----| 2: (Parameters) # 48| 0: [Parameter] n @@ -195,7 +195,7 @@ CheckedOperators.cs: # 49| 0: [PropertyCall] access to property Value # 49| -1: [ParameterAccess] access to parameter n # 49| 1: [IntLiteral] 1 -# 51| 20: [ExplicitConversionOperator] explicit conversion +# 51| 21: [ExplicitConversionOperator] explicit conversion # 51| -1: [TypeMention] short #-----| 2: (Parameters) # 51| 0: [Parameter] n @@ -205,7 +205,7 @@ CheckedOperators.cs: # 52| 0: [TypeMention] short # 52| 1: [PropertyCall] access to property Value # 52| -1: [ParameterAccess] access to parameter n -# 54| 21: [CheckedExplicitConversionOperator] checked explicit conversion +# 54| 22: [CheckedExplicitConversionOperator] checked explicit conversion # 54| -1: [TypeMention] short #-----| 2: (Parameters) # 54| 0: [Parameter] n @@ -240,22 +240,22 @@ FileScoped1.cs: # 19| [Enum] E1 # 21| [DelegateType] D1 # 23| [RecordClass] R1 -# 23| 12: [NEOperator] != +# 23| 13: [NEOperator] != #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right -# 23| 13: [EQOperator] == +# 23| 14: [EQOperator] == #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right -# 23| 14: [Property] EqualityContract +# 23| 15: [Property] EqualityContract # 23| 3: [Getter] get_EqualityContract # 25| [RecordStruct] RS1 -# 25| 10: [NEOperator] != +# 25| 11: [NEOperator] != #-----| 2: (Parameters) # 25| 0: [Parameter] left # 25| 1: [Parameter] right -# 25| 11: [EQOperator] == +# 25| 12: [EQOperator] == #-----| 2: (Parameters) # 25| 0: [Parameter] left # 25| 1: [Parameter] right @@ -280,22 +280,22 @@ FileScoped2.cs: # 17| [Enum] E1 # 19| [DelegateType] D1 # 21| [RecordClass] R1 -# 21| 12: [NEOperator] != +# 21| 13: [NEOperator] != #-----| 2: (Parameters) # 21| 0: [Parameter] left # 21| 1: [Parameter] right -# 21| 13: [EQOperator] == +# 21| 14: [EQOperator] == #-----| 2: (Parameters) # 21| 0: [Parameter] left # 21| 1: [Parameter] right -# 21| 14: [Property] EqualityContract +# 21| 15: [Property] EqualityContract # 21| 3: [Getter] get_EqualityContract # 23| [RecordStruct] RS1 -# 23| 10: [NEOperator] != +# 23| 11: [NEOperator] != #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right -# 23| 11: [EQOperator] == +# 23| 12: [EQOperator] == #-----| 2: (Parameters) # 23| 0: [Parameter] left # 23| 1: [Parameter] right @@ -333,21 +333,21 @@ GenericAttribute.cs: #-----| 3: (Base types) # 7| 0: [TypeMention] Attribute # 9| [Class] TestGenericAttribute -# 13| 5: [Method] M1 +# 13| 6: [Method] M1 # 13| -1: [TypeMention] Void #-----| 0: (Attributes) # 12| 1: [GenericDefaultAttribute] [MyGeneric(...)] # 12| 0: [TypeMention] MyGenericAttribute # 12| 1: [TypeMention] int # 13| 4: [BlockStmt] {...} -# 16| 6: [Method] M2 +# 16| 7: [Method] M2 # 16| -1: [TypeMention] Void #-----| 0: (Attributes) # 15| 1: [GenericDefaultAttribute] [MyGeneric(...)] # 15| 0: [TypeMention] MyGenericAttribute # 15| 1: [TypeMention] string # 16| 4: [BlockStmt] {...} -# 19| 7: [Method] M3 +# 19| 8: [Method] M3 # 19| -1: [TypeMention] Void #-----| 0: (Attributes) # 18| 1: [GenericDefaultAttribute] [MyGeneric2(...)] @@ -355,7 +355,7 @@ GenericAttribute.cs: # 18| 1: [TypeMention] int # 18| 2: [TypeMention] string # 19| 4: [BlockStmt] {...} -# 22| 8: [Method] M4 +# 22| 9: [Method] M4 # 22| -1: [TypeMention] int #-----| 0: (Attributes) # 21| 1: [GenericReturnAttribute] [return: MyGeneric(...)] @@ -366,7 +366,7 @@ GenericAttribute.cs: # 22| 0: [IntLiteral] 0 ListPattern.cs: # 3| [Class] ListPattern -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] x @@ -430,7 +430,7 @@ ListPattern.cs: # 13| 1: [ConstantPatternExpr,IntLiteral] 5 # 13| 2: [ConstantPatternExpr,IntLiteral] 2 # 13| 1: [BlockStmt] {...} -# 16| 6: [Method] M2 +# 16| 7: [Method] M2 # 16| -1: [TypeMention] Void #-----| 2: (Parameters) # 16| 0: [Parameter] x @@ -482,19 +482,19 @@ ListPattern.cs: # 35| 15: [BreakStmt] break; NameofScope.cs: # 3| [Class] MyAttributeTestClass -# 5| 5: [Class] MyAttribute +# 5| 6: [Class] MyAttribute #-----| 3: (Base types) # 5| 0: [TypeMention] Attribute -# 7| 4: [Field] S +# 7| 5: [Field] S # 7| -1: [TypeMention] string -# 8| 5: [InstanceConstructor] MyAttribute +# 8| 6: [InstanceConstructor] MyAttribute #-----| 2: (Parameters) # 8| 0: [Parameter] s # 8| -1: [TypeMention] string # 8| 4: [AssignExpr] ... = ... # 8| 0: [FieldAccess] access to field S # 8| 1: [ParameterAccess] access to parameter s -# 12| 6: [Method] M1`1 +# 12| 7: [Method] M1`1 # 12| -1: [TypeMention] Void #-----| 0: (Attributes) # 11| 1: [DefaultAttribute] [My(...)] @@ -508,7 +508,7 @@ NameofScope.cs: # 12| 0: [Parameter] x # 12| -1: [TypeMention] string # 12| 4: [BlockStmt] {...} -# 15| 7: [Method] M2 +# 15| 8: [Method] M2 # 15| -1: [TypeMention] string #-----| 0: (Attributes) # 14| 1: [ReturnAttribute] [return: My(...)] @@ -519,7 +519,7 @@ NameofScope.cs: # 15| 0: [Parameter] y # 15| -1: [TypeMention] string # 15| 4: [ParameterAccess] access to parameter y -# 17| 8: [Method] M3 +# 17| 9: [Method] M3 # 17| -1: [TypeMention] object #-----| 2: (Parameters) # 17| 0: [Parameter] z @@ -530,7 +530,7 @@ NameofScope.cs: # 17| 0: [NameOfExpr] nameof(...) # 17| 0: [ParameterAccess] access to parameter z # 17| 4: [ParameterAccess] access to parameter z -# 19| 9: [Method] M4`1 +# 19| 10: [Method] M4`1 # 19| -1: [TypeMention] object #-----| 1: (Type parameters) # 19| 0: [TypeParameter] S @@ -546,7 +546,7 @@ NameofScope.cs: # 19| 4: [ParameterAccess] access to parameter z NativeInt.cs: # 1| [Class] NativeInt -# 3| 5: [Method] M1 +# 3| 6: [Method] M1 # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 5| 0: [LocalVariableDeclStmt] ... ...; @@ -579,7 +579,7 @@ NativeInt.cs: # 9| 1: [IntLiteral] 0 Operators.cs: # 2| [Class] MyClass -# 4| 5: [Method] M1 +# 4| 6: [Method] M1 # 4| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} # 6| 0: [LocalVariableDeclStmt] ... ...; @@ -618,7 +618,7 @@ Operators.cs: # 13| 0: [LocalVariableAccess] access to local variable z # 13| 1: [IntLiteral] 5 # 17| [Class] MyOperatorClass -# 19| 5: [UnsignedRightShiftOperator] >>> +# 19| 6: [UnsignedRightShiftOperator] >>> # 19| -1: [TypeMention] MyOperatorClass #-----| 2: (Parameters) # 19| 0: [Parameter] a @@ -630,7 +630,7 @@ Operators.cs: # 19| 0: [NullLiteral] null PatternMatchSpan.cs: # 3| [Class] PatternMatchSpan -# 6| 5: [Method] M1 +# 6| 6: [Method] M1 # 6| -1: [TypeMention] Void #-----| 2: (Parameters) # 6| 0: [Parameter] x1 @@ -642,7 +642,7 @@ PatternMatchSpan.cs: # 8| 0: [ParameterAccess] access to parameter x1 # 8| 1: [ConstantPatternExpr,StringLiteralUtf16] "ABC" # 8| 1: [BlockStmt] {...} -# 11| 6: [Method] M2 +# 11| 7: [Method] M2 # 11| -1: [TypeMention] Void #-----| 2: (Parameters) # 11| 0: [Parameter] x2 @@ -687,7 +687,7 @@ RelaxedShift.cs: # 7| -1: [TypeMention] TOther # 10| [Class] Number #-----| 3: (Base types) -# 12| 5: [LeftShiftOperator] << +# 12| 6: [LeftShiftOperator] << # 12| -1: [TypeMention] Number #-----| 2: (Parameters) # 12| 0: [Parameter] value @@ -695,7 +695,7 @@ RelaxedShift.cs: # 12| 1: [Parameter] shiftAmount # 12| -1: [TypeMention] string # 12| 4: [ParameterAccess] access to parameter value -# 14| 6: [RightShiftOperator] >> +# 14| 7: [RightShiftOperator] >> # 14| -1: [TypeMention] Number #-----| 2: (Parameters) # 14| 0: [Parameter] value @@ -703,7 +703,7 @@ RelaxedShift.cs: # 14| 1: [Parameter] shiftAmount # 14| -1: [TypeMention] string # 14| 4: [ParameterAccess] access to parameter value -# 16| 7: [UnsignedRightShiftOperator] >>> +# 16| 8: [UnsignedRightShiftOperator] >>> # 16| -1: [TypeMention] Number #-----| 2: (Parameters) # 16| 0: [Parameter] value @@ -712,7 +712,7 @@ RelaxedShift.cs: # 16| -1: [TypeMention] string # 16| 4: [ParameterAccess] access to parameter value # 19| [Class] TestRelaxedShift -# 21| 5: [Method] M1 +# 21| 6: [Method] M1 # 21| -1: [TypeMention] Void # 22| 4: [BlockStmt] {...} # 23| 0: [LocalVariableDeclStmt] ... ...; @@ -756,23 +756,23 @@ RelaxedShift.cs: # 30| 1: [StringLiteralUtf16] "3" RequiredMembers.cs: # 4| [Class] ClassRequiredMembers -# 6| 4: [Field] RequiredField +# 6| 5: [Field] RequiredField # 6| -1: [TypeMention] object -# 7| 5: [Property] RequiredProperty +# 7| 6: [Property] RequiredProperty # 7| -1: [TypeMention] string # 7| 3: [Getter] get_RequiredProperty # 7| 4: [Setter] set_RequiredProperty #-----| 2: (Parameters) # 7| 0: [Parameter] value -# 8| 6: [Property] VirtualProperty +# 8| 7: [Property] VirtualProperty # 8| -1: [TypeMention] object # 8| 3: [Getter] get_VirtualProperty # 8| 4: [Setter] set_VirtualProperty #-----| 2: (Parameters) # 8| 0: [Parameter] value -# 10| 7: [InstanceConstructor] ClassRequiredMembers +# 10| 8: [InstanceConstructor] ClassRequiredMembers # 10| 4: [BlockStmt] {...} -# 13| 8: [InstanceConstructor] ClassRequiredMembers +# 13| 9: [InstanceConstructor] ClassRequiredMembers #-----| 0: (Attributes) # 12| 1: [DefaultAttribute] [SetsRequiredMembers(...)] # 12| 0: [TypeMention] SetsRequiredMembersAttribute @@ -793,16 +793,16 @@ RequiredMembers.cs: # 20| [Class] ClassRequiredMembersSub #-----| 3: (Base types) # 20| 0: [TypeMention] ClassRequiredMembers -# 22| 4: [Property] VirtualProperty +# 22| 5: [Property] VirtualProperty # 22| -1: [TypeMention] object # 22| 3: [Getter] get_VirtualProperty # 22| 4: [Setter] set_VirtualProperty #-----| 2: (Parameters) # 22| 0: [Parameter] value -# 24| 5: [InstanceConstructor] ClassRequiredMembersSub +# 24| 6: [InstanceConstructor] ClassRequiredMembersSub # 24| 3: [ConstructorInitializer] call to constructor ClassRequiredMembers # 24| 4: [BlockStmt] {...} -# 27| 6: [InstanceConstructor] ClassRequiredMembersSub +# 27| 7: [InstanceConstructor] ClassRequiredMembersSub #-----| 0: (Attributes) # 26| 1: [DefaultAttribute] [SetsRequiredMembers(...)] # 26| 0: [TypeMention] SetsRequiredMembersAttribute @@ -822,24 +822,24 @@ RequiredMembers.cs: # 29| 0: [PropertyCall] access to property VirtualProperty # 29| 1: [ParameterAccess] access to parameter virtualProperty # 33| [RecordClass] RecordRequiredMembers -# 33| 12: [NEOperator] != +# 33| 13: [NEOperator] != #-----| 2: (Parameters) # 33| 0: [Parameter] left # 33| 1: [Parameter] right -# 33| 13: [EQOperator] == +# 33| 14: [EQOperator] == #-----| 2: (Parameters) # 33| 0: [Parameter] left # 33| 1: [Parameter] right -# 33| 14: [Property] EqualityContract +# 33| 15: [Property] EqualityContract # 33| 3: [Getter] get_EqualityContract -# 35| 15: [Property] X +# 35| 16: [Property] X # 35| -1: [TypeMention] object # 35| 3: [Getter] get_X # 35| 4: [Setter] set_X #-----| 2: (Parameters) # 35| 0: [Parameter] value # 38| [Struct] StructRequiredMembers -# 40| 5: [Property] Y +# 40| 6: [Property] Y # 40| -1: [TypeMention] string # 40| 3: [Getter] get_Y # 40| 4: [Setter] set_Y @@ -849,7 +849,7 @@ Scoped.cs: # 1| [Struct] S1 # 2| [RefStruct] S2 # 7| [Class] ScopedModifierTest -# 9| 5: [Method] M1 +# 9| 6: [Method] M1 # 9| -1: [TypeMention] int #-----| 2: (Parameters) # 9| 0: [Parameter] x1 @@ -860,7 +860,7 @@ Scoped.cs: # 13| 0: [ReturnStmt] return ...; # 13| 0: [RefExpr] ref ... # 13| 0: [ParameterAccess] access to parameter y1 -# 16| 6: [Method] M2 +# 16| 7: [Method] M2 # 16| -1: [TypeMention] int #-----| 2: (Parameters) # 16| 0: [Parameter] x2 @@ -875,7 +875,7 @@ Scoped.cs: # 21| 1: [ReturnStmt] return ...; # 21| 0: [RefExpr] ref ... # 21| 0: [ParameterAccess] access to parameter y2 -# 24| 7: [Method] M3 +# 24| 8: [Method] M3 # 24| -1: [TypeMention] int #-----| 2: (Parameters) # 24| 0: [Parameter] x3 @@ -883,7 +883,7 @@ Scoped.cs: # 25| 4: [BlockStmt] {...} # 27| 0: [ReturnStmt] return ...; # 27| 0: [ParameterAccess] access to parameter x3 -# 30| 8: [Method] M4 +# 30| 9: [Method] M4 # 30| -1: [TypeMention] S1 #-----| 2: (Parameters) # 30| 0: [Parameter] x4 @@ -891,7 +891,7 @@ Scoped.cs: # 31| 4: [BlockStmt] {...} # 33| 0: [ReturnStmt] return ...; # 33| 0: [ParameterAccess] access to parameter x4 -# 36| 9: [Method] M5 +# 36| 10: [Method] M5 # 36| -1: [TypeMention] S2 #-----| 2: (Parameters) # 36| 0: [Parameter] x5 @@ -900,7 +900,7 @@ Scoped.cs: # 40| 0: [ReturnStmt] return ...; # 40| 0: [ObjectCreation] object creation of type S2 # 40| 0: [TypeMention] S2 -# 43| 10: [Method] M6 +# 43| 11: [Method] M6 # 43| -1: [TypeMention] S2 #-----| 2: (Parameters) # 43| 0: [Parameter] x6 @@ -909,7 +909,7 @@ Scoped.cs: # 47| 0: [ReturnStmt] return ...; # 47| 0: [ObjectCreation] object creation of type S2 # 47| 0: [TypeMention] S2 -# 50| 11: [Method] Locals +# 50| 12: [Method] Locals # 50| -1: [TypeMention] S2 # 51| 4: [BlockStmt] {...} # 52| 0: [LocalVariableDeclStmt] ... ...; @@ -928,7 +928,7 @@ Scoped.cs: # 56| 0: [LocalVariableAccess] access to local variable y7 SignAnalysis.cs: # 1| [Class] MySignAnalysis -# 4| 5: [Method] UnsignedRightShiftSign +# 4| 6: [Method] UnsignedRightShiftSign # 4| -1: [TypeMention] Void #-----| 2: (Parameters) # 4| 0: [Parameter] x @@ -1109,27 +1109,27 @@ StaticInterfaceMembers.cs: # 23| 0: [TypeMention] T # 26| [Class] Complex #-----| 3: (Base types) -# 28| 4: [Property] Real +# 28| 5: [Property] Real # 28| -1: [TypeMention] double # 28| 2: [DoubleLiteral] 0 # 28| 3: [Getter] get_Real # 28| 4: [Setter] set_Real #-----| 2: (Parameters) # 28| 0: [Parameter] value -# 29| 5: [Property] Imaginary +# 29| 6: [Property] Imaginary # 29| -1: [TypeMention] double # 29| 2: [DoubleLiteral] 0 # 29| 3: [Getter] get_Imaginary # 29| 4: [Setter] set_Imaginary #-----| 2: (Parameters) # 29| 0: [Parameter] value -# 31| 6: [InstanceConstructor] Complex +# 31| 7: [InstanceConstructor] Complex # 31| 4: [BlockStmt] {...} -# 33| 7: [Method] Zero +# 33| 8: [Method] Zero # 33| -1: [TypeMention] Complex # 33| 4: [ObjectCreation] object creation of type Complex # 33| 0: [TypeMention] Complex -# 35| 8: [IncrementOperator] ++ +# 35| 9: [IncrementOperator] ++ # 35| -1: [TypeMention] Complex #-----| 2: (Parameters) # 35| 0: [Parameter] other @@ -1147,7 +1147,7 @@ StaticInterfaceMembers.cs: # 36| 0: [PropertyCall] access to property Imaginary # 36| 1: [PropertyCall] access to property Imaginary # 36| -1: [ParameterAccess] access to parameter other -# 38| 9: [DecrementOperator] -- +# 38| 10: [DecrementOperator] -- # 38| -1: [TypeMention] Complex #-----| 2: (Parameters) # 38| 0: [Parameter] other @@ -1165,7 +1165,7 @@ StaticInterfaceMembers.cs: # 39| 0: [PropertyCall] access to property Imaginary # 39| 1: [PropertyCall] access to property Imaginary # 39| -1: [ParameterAccess] access to parameter other -# 41| 10: [AddOperator] + +# 41| 11: [AddOperator] + # 41| -1: [TypeMention] Complex #-----| 2: (Parameters) # 41| 0: [Parameter] left @@ -1189,7 +1189,7 @@ StaticInterfaceMembers.cs: # 42| -1: [ParameterAccess] access to parameter left # 42| 1: [PropertyCall] access to property Imaginary # 42| -1: [ParameterAccess] access to parameter right -# 44| 11: [SubOperator] - +# 44| 12: [SubOperator] - # 44| -1: [TypeMention] Complex #-----| 2: (Parameters) # 44| 0: [Parameter] left @@ -1213,7 +1213,7 @@ StaticInterfaceMembers.cs: # 45| -1: [ParameterAccess] access to parameter left # 45| 1: [PropertyCall] access to property Imaginary # 45| -1: [ParameterAccess] access to parameter right -# 47| 12: [ExplicitConversionOperator] explicit conversion +# 47| 13: [ExplicitConversionOperator] explicit conversion # 47| -1: [TypeMention] int #-----| 2: (Parameters) # 47| 0: [Parameter] n @@ -1223,7 +1223,7 @@ StaticInterfaceMembers.cs: # 47| 0: [TypeMention] int # 47| 1: [PropertyCall] access to property Real # 47| -1: [ParameterAccess] access to parameter n -# 49| 13: [ExplicitConversionOperator] explicit conversion +# 49| 14: [ExplicitConversionOperator] explicit conversion # 49| -1: [TypeMention] short #-----| 2: (Parameters) # 49| 0: [Parameter] n @@ -1233,7 +1233,7 @@ StaticInterfaceMembers.cs: # 49| 0: [TypeMention] short # 49| 1: [PropertyCall] access to property Real # 49| -1: [ParameterAccess] access to parameter n -# 51| 14: [Method] Inc +# 51| 15: [Method] Inc # 51| -1: [TypeMention] INumber # 51| 1: [TypeMention] Complex # 51| -1: [TypeMention] Complex @@ -1253,7 +1253,7 @@ StaticInterfaceMembers.cs: # 52| 0: [PropertyCall] access to property Imaginary # 52| 1: [PropertyCall] access to property Imaginary # 52| -1: [ParameterAccess] access to parameter other -# 54| 15: [Method] Dec +# 54| 16: [Method] Dec # 54| -1: [TypeMention] INumber # 54| 1: [TypeMention] Complex # 54| -1: [TypeMention] Complex @@ -1273,7 +1273,7 @@ StaticInterfaceMembers.cs: # 55| 0: [PropertyCall] access to property Imaginary # 55| 1: [PropertyCall] access to property Imaginary # 55| -1: [ParameterAccess] access to parameter other -# 57| 16: [Method] Add +# 57| 17: [Method] Add # 57| -1: [TypeMention] Complex #-----| 2: (Parameters) # 57| 0: [Parameter] left @@ -1297,7 +1297,7 @@ StaticInterfaceMembers.cs: # 58| -1: [ParameterAccess] access to parameter left # 58| 1: [PropertyCall] access to property Imaginary # 58| -1: [ParameterAccess] access to parameter right -# 60| 17: [Method] Subtract +# 60| 18: [Method] Subtract # 60| -1: [TypeMention] Complex #-----| 2: (Parameters) # 60| 0: [Parameter] left @@ -1323,7 +1323,7 @@ StaticInterfaceMembers.cs: # 61| -1: [ParameterAccess] access to parameter right Strings.cs: # 3| [Class] MyTestClass -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] string #-----| 2: (Parameters) # 5| 0: [Parameter] x @@ -1342,7 +1342,7 @@ Strings.cs: # 11| 0: [DiscardPatternExpr] _ # 11| 2: [StringLiteralUtf16] "something else" # 12| 2: [StringLiteralUtf16] "." -# 15| 6: [Method] M2 +# 15| 7: [Method] M2 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 18| 0: [LocalVariableDeclStmt] ... ...; @@ -1377,7 +1377,7 @@ Strings.cs: # 35| 3: [InterpolatedStringInsertExpr] {...} # 35| 0: [LocalVariableAccess] access to local variable message2 # 35| 4: [StringLiteralUtf16] "}" -# 40| 7: [Method] M3 +# 40| 8: [Method] M3 # 40| -1: [TypeMention] Void # 41| 4: [BlockStmt] {...} # 43| 0: [LocalVariableDeclStmt] ... ...; @@ -1407,30 +1407,30 @@ Struct.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] MyEmptyClass # 5| 2: [RefStruct] RefStruct -# 7| 5: [Field] MyInt +# 7| 6: [Field] MyInt # 7| -1: [TypeMention] int -# 8| 6: [Field] MyByte +# 8| 7: [Field] MyByte # 8| -1: [TypeMention] byte -# 9| 7: [Field] MyObject +# 9| 8: [Field] MyObject # 9| -1: [TypeMention] object -# 10| 8: [Field] MyEmptyClass +# 10| 9: [Field] MyEmptyClass # 10| -1: [TypeMention] MyEmptyClass -# 11| 9: [Field] MyReadonlyByte +# 11| 10: [Field] MyReadonlyByte # 11| -1: [TypeMention] byte -# 12| 10: [Field] MyReadonlyObject +# 12| 11: [Field] MyReadonlyObject # 12| -1: [TypeMention] object -# 13| 11: [Field] MyReadonlyString +# 13| 12: [Field] MyReadonlyString # 13| -1: [TypeMention] string StructDefault.cs: # 1| [Class] MyEmptyClass # 2| [Struct] StructDefaultValue -# 4| 5: [Field] X +# 4| 6: [Field] X # 4| -1: [TypeMention] int -# 5| 6: [Field] Y +# 5| 7: [Field] Y # 5| -1: [TypeMention] int -# 6| 7: [Field] Z +# 6| 8: [Field] Z # 6| -1: [TypeMention] MyEmptyClass -# 8| 8: [InstanceConstructor] StructDefaultValue +# 8| 9: [InstanceConstructor] StructDefaultValue #-----| 2: (Parameters) # 8| 0: [Parameter] x # 8| -1: [TypeMention] int diff --git a/csharp/ql/test/library-tests/csharp6/MemberAccess.expected b/csharp/ql/test/library-tests/csharp6/MemberAccess.expected index 1eda117fadd..d54af10ffc3 100644 --- a/csharp/ql/test/library-tests/csharp6/MemberAccess.expected +++ b/csharp/ql/test/library-tests/csharp6/MemberAccess.expected @@ -4,7 +4,10 @@ memberAccess | csharp6.cs:32:38:32:70 | access to indexer | csharp6.cs:32:38:32:66 | object creation of type Dictionary | Conditional | | csharp6.cs:32:38:32:73 | access to indexer | csharp6.cs:32:38:32:70 | access to indexer | Unconditional | methodCall +| csharp6.cs:10:7:10:17 | call to method | csharp6.cs:10:7:10:17 | this access | Unconditional | | csharp6.cs:30:31:30:44 | call to method ToUpper | csharp6.cs:30:31:30:33 | access to local variable foo | Conditional | +| csharp6.cs:53:7:53:23 | call to method | csharp6.cs:53:7:53:23 | this access | Unconditional | +| csharp6.cs:55:11:55:18 | call to method | csharp6.cs:55:11:55:18 | this access | Unconditional | extensionMethodCall | csharp6.cs:29:35:29:44 | call to method Any | csharp6.cs:29:35:29:37 | access to local variable bar | Conditional | | csharp6.cs:30:31:30:66 | call to method Select | csharp6.cs:30:31:30:44 | call to method ToUpper | Unconditional | diff --git a/csharp/ql/test/library-tests/csharp6/PrintAst.expected b/csharp/ql/test/library-tests/csharp6/PrintAst.expected index 424a18bcb02..78747650190 100644 --- a/csharp/ql/test/library-tests/csharp6/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp6/PrintAst.expected @@ -1,17 +1,17 @@ csharp6.cs: # 10| [Class] TestCSharp6 -# 12| 6: [Property] Value +# 12| 7: [Property] Value # 12| -1: [TypeMention] int # 15| 2: [IntLiteral] 20 # 14| 3: [Getter] get_Value -# 17| 7: [Method] Fn +# 17| 8: [Method] Fn # 17| -1: [TypeMention] Void #-----| 2: (Parameters) # 17| 0: [Parameter] x # 17| -1: [TypeMention] string # 17| 4: [MethodCall] call to method WriteLine # 17| 0: [ParameterAccess] access to parameter x -# 19| 8: [Method] Main +# 19| 9: [Method] Main # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 21| 0: [TryStmt] try {...} ... @@ -112,7 +112,7 @@ csharp6.cs: # 37| 1: [IntLiteral] 30 # 40| 3: [GeneralCatchClause] catch {...} # 41| 1: [BlockStmt] {...} -# 45| 9: [EQOperator] == +# 45| 10: [EQOperator] == # 45| -1: [TypeMention] bool #-----| 2: (Parameters) # 45| 0: [Parameter] t1 @@ -120,7 +120,7 @@ csharp6.cs: # 45| 1: [Parameter] t2 # 45| -1: [TypeMention] TestCSharp6 # 45| 4: [BoolLiteral] true -# 46| 10: [NEOperator] != +# 46| 11: [NEOperator] != # 46| -1: [TypeMention] bool #-----| 2: (Parameters) # 46| 0: [Parameter] t1 @@ -128,11 +128,11 @@ csharp6.cs: # 46| 1: [Parameter] t2 # 46| -1: [TypeMention] TestCSharp6 # 46| 4: [BoolLiteral] false -# 48| 11: [Property] ExprProperty +# 48| 12: [Property] ExprProperty # 48| -1: [TypeMention] int # 48| 3: [Getter] get_ExprProperty # 48| 4: [IntLiteral] 3 -# 50| 12: [Indexer] Item +# 50| 13: [Indexer] Item # 50| -1: [TypeMention] int #-----| 1: (Parameters) # 50| 0: [Parameter] i @@ -142,12 +142,12 @@ csharp6.cs: # 50| 0: [Parameter] i # 50| 4: [ParameterAccess] access to parameter i # 53| [Class] IndexInitializers -# 55| 5: [Class] Compound -# 57| 5: [Field] DictionaryField +# 55| 6: [Class] Compound +# 57| 6: [Field] DictionaryField # 57| -1: [TypeMention] Dictionary # 57| 1: [TypeMention] int # 57| 2: [TypeMention] string -# 58| 6: [Property] DictionaryProperty +# 58| 7: [Property] DictionaryProperty # 58| -1: [TypeMention] Dictionary # 58| 1: [TypeMention] int # 58| 2: [TypeMention] string @@ -155,27 +155,27 @@ csharp6.cs: # 58| 4: [Setter] set_DictionaryProperty #-----| 2: (Parameters) # 58| 0: [Parameter] value -# 59| 7: [Field] ArrayField +# 59| 8: [Field] ArrayField # 59| -1: [TypeMention] String[] # 59| 1: [TypeMention] string -# 60| 8: [Property] ArrayProperty +# 60| 9: [Property] ArrayProperty # 60| -1: [TypeMention] String[] # 60| 1: [TypeMention] string # 60| 3: [Getter] get_ArrayProperty # 60| 4: [Setter] set_ArrayProperty #-----| 2: (Parameters) # 60| 0: [Parameter] value -# 61| 9: [Field] ArrayField2 +# 61| 10: [Field] ArrayField2 # 61| -1: [TypeMention] String[,] # 61| 1: [TypeMention] string -# 62| 10: [Property] ArrayProperty2 +# 62| 11: [Property] ArrayProperty2 # 62| -1: [TypeMention] String[,] # 62| 1: [TypeMention] string # 62| 3: [Getter] get_ArrayProperty2 # 62| 4: [Setter] set_ArrayProperty2 #-----| 2: (Parameters) # 62| 0: [Parameter] value -# 65| 6: [Method] Test +# 65| 7: [Method] Test # 65| -1: [TypeMention] Void # 66| 4: [BlockStmt] {...} # 68| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected index 7f4e1467218..b33c09db0ec 100644 --- a/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.1/PrintAst.expected @@ -1,6 +1,6 @@ csharp71.cs: # 1| [Class] DefaultLiterals -# 3| 5: [Method] f +# 3| 6: [Method] f # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 5| 0: [LocalVariableDeclStmt] ... ...; @@ -50,7 +50,7 @@ csharp71.cs: # 15| 1: [CastExpr] (...) ... # 15| 1: [DefaultValueExpr] default # 19| [Class] IsConstants -# 21| 5: [Method] f +# 21| 6: [Method] f # 21| -1: [TypeMention] Void # 22| 4: [BlockStmt] {...} # 23| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected index 834b03b4471..bbfb098c3af 100644 --- a/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.2/PrintAst.expected @@ -1,13 +1,13 @@ csharp72.cs: # 3| [Class] InModifiers -# 5| 5: [Struct] S -# 9| 6: [Method] F +# 5| 6: [Struct] S +# 9| 7: [Method] F # 9| -1: [TypeMention] Void #-----| 2: (Parameters) # 9| 0: [Parameter] s # 9| -1: [TypeMention] S # 10| 4: [BlockStmt] {...} -# 13| 7: [Method] CallF +# 13| 8: [Method] CallF # 13| -1: [TypeMention] Void # 14| 4: [BlockStmt] {...} # 15| 0: [LocalVariableDeclStmt] ... ...; @@ -20,26 +20,26 @@ csharp72.cs: # 16| 0: [MethodCall] call to method F # 16| 0: [LocalVariableAccess] access to local variable s # 20| [Class] RefReadonlyReturns -# 22| 5: [Field] s +# 22| 6: [Field] s # 22| -1: [TypeMention] int -# 24| 6: [Method] F +# 24| 7: [Method] F # 24| -1: [TypeMention] int # 25| 4: [BlockStmt] {...} # 26| 0: [ReturnStmt] return ...; # 26| 0: [RefExpr] ref ... # 26| 0: [FieldAccess] access to field s -# 29| 7: [DelegateType] Del +# 29| 8: [DelegateType] Del # 32| [Struct] ReadonlyStruct # 36| [RefStruct] RefStruct # 40| [RefStruct] ReadonlyRefStruct # 44| [Class] NumericLiterals -# 46| 5: [Field] binaryValue +# 46| 6: [Field] binaryValue # 46| -1: [TypeMention] int # 46| 1: [IntLiteral] 85 # 49| [Class] PrivateProtected -# 51| 5: [Field] X +# 51| 6: [Field] X # 51| -1: [TypeMention] int # 51| 1: [IntLiteral] 1 -# 53| 6: [Method] F +# 53| 7: [Method] F # 53| -1: [TypeMention] Void # 53| 4: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected b/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected index 70bfee85c04..b3fa3781436 100644 --- a/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7.3/PrintAst.expected @@ -1,6 +1,6 @@ csharp73.cs: # 3| [Class] StackAllocs -# 5| 5: [Method] Fn +# 5| 6: [Method] Fn # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -58,7 +58,7 @@ csharp73.cs: # 12| 1: [IntLiteral] 2 # 12| 2: [IntLiteral] 3 # 16| [Class] PinnedReference -# 18| 5: [Method] F +# 18| 6: [Method] F # 18| -1: [TypeMention] Void # 19| 4: [BlockStmt] {...} # 20| 0: [LocalVariableDeclStmt] ... ...; @@ -75,8 +75,8 @@ csharp73.cs: # 22| -1: [TypeMention] Span # 22| 1: [TypeMention] int # 22| 0: [LocalVariableAccess] access to local variable t -# 22| 1: [OperatorCall] call to operator implicit conversion -# 22| 0: [ArrayCreation] array creation of type Int32[] +# 22| 1: [CastExpr] (...) ... +# 22| 1: [ArrayCreation] array creation of type Int32[] # 22| -1: [TypeMention] Int32[] # 22| 1: [TypeMention] int # 22| 0: [IntLiteral] 10 @@ -91,7 +91,7 @@ csharp73.cs: #-----| 1: (Type parameters) # 38| 0: [TypeParameter] T # 42| [Class] ExpressionVariables -# 44| 4: [InstanceConstructor] ExpressionVariables +# 44| 5: [InstanceConstructor] ExpressionVariables #-----| 2: (Parameters) # 44| 0: [Parameter] x # 44| -1: [TypeMention] int @@ -100,7 +100,7 @@ csharp73.cs: # 46| 0: [AssignExpr] ... = ... # 46| 0: [ParameterAccess] access to parameter x # 46| 1: [IntLiteral] 5 -# 49| 5: [InstanceConstructor] ExpressionVariables +# 49| 6: [InstanceConstructor] ExpressionVariables # 49| 3: [ConstructorInitializer] call to constructor ExpressionVariables # 49| 0: [LocalVariableAccess,LocalVariableDeclExpr] Int32 x # 50| 4: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/csharp7/CSharp7.cs b/csharp/ql/test/library-tests/csharp7/CSharp7.cs index c17b4164120..d067dc66a4d 100644 --- a/csharp/ql/test/library-tests/csharp7/CSharp7.cs +++ b/csharp/ql/test/library-tests/csharp7/CSharp7.cs @@ -11,13 +11,13 @@ class Literals class ExpressionBodiedMembers { - int field = 0; - int Foo() => field; + int @field = 0; + int Foo() => @field; int P => 5; int Q { get => Foo(); - set => field = value; + set => @field = value; } ExpressionBodiedMembers() : this(1) { } ExpressionBodiedMembers(int x) => Foo(); diff --git a/csharp/ql/test/library-tests/csharp7/DefUse.expected b/csharp/ql/test/library-tests/csharp7/DefUse.expected index fb55afb5e51..ac466f9e865 100644 --- a/csharp/ql/test/library-tests/csharp7/DefUse.expected +++ b/csharp/ql/test/library-tests/csharp7/DefUse.expected @@ -1,4 +1,4 @@ -| CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:24:20:28 | access to parameter value | +| CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:25:20:29 | access to parameter value | | CSharp7.cs:29:19:29:19 | i | CSharp7.cs:31:16:31:16 | access to parameter i | | CSharp7.cs:29:19:29:19 | i | CSharp7.cs:31:24:31:24 | access to parameter i | | CSharp7.cs:42:19:42:19 | x | CSharp7.cs:44:13:44:13 | access to parameter x | diff --git a/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected b/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected index fcba5499d77..c2575373d51 100644 --- a/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected +++ b/csharp/ql/test/library-tests/csharp7/ExpressionBodies.expected @@ -1,7 +1,7 @@ -| CSharp7.cs:15:9:15:11 | Foo | CSharp7.cs:15:18:15:22 | access to field field | +| CSharp7.cs:15:9:15:11 | Foo | CSharp7.cs:15:18:15:23 | access to field field | | CSharp7.cs:16:14:16:14 | get_P | CSharp7.cs:16:14:16:14 | 5 | | CSharp7.cs:19:9:19:11 | get_Q | CSharp7.cs:19:16:19:20 | call to method Foo | -| CSharp7.cs:20:9:20:11 | set_Q | CSharp7.cs:20:16:20:28 | ... = ... | +| CSharp7.cs:20:9:20:11 | set_Q | CSharp7.cs:20:16:20:29 | ... = ... | | CSharp7.cs:23:5:23:27 | ExpressionBodiedMembers | CSharp7.cs:23:39:23:43 | call to method Foo | | CSharp7.cs:24:6:24:28 | ~ExpressionBodiedMembers | CSharp7.cs:24:35:24:39 | call to method Foo | | CSharp7.cs:135:9:135:22 | f3 | CSharp7.cs:135:21:135:21 | 2 | diff --git a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected index 0a5266ed359..ebe04faf725 100644 --- a/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected +++ b/csharp/ql/test/library-tests/csharp7/LocalTaintFlow.expected @@ -1,3 +1,4 @@ +| CSharp7.cs:5:7:5:14 | this | CSharp7.cs:5:7:5:14 | this access | | CSharp7.cs:5:7:5:14 | this | CSharp7.cs:7:9:7:9 | this access | | CSharp7.cs:7:9:7:9 | [post] this access | CSharp7.cs:8:9:8:9 | this access | | CSharp7.cs:7:9:7:9 | this access | CSharp7.cs:8:9:8:9 | this access | @@ -6,23 +7,26 @@ | CSharp7.cs:8:9:8:9 | this access | CSharp7.cs:9:9:9:9 | this access | | CSharp7.cs:8:13:8:19 | 123456 | CSharp7.cs:8:9:8:9 | access to field y | | CSharp7.cs:9:13:9:23 | 128 | CSharp7.cs:9:9:9:9 | access to field z | -| CSharp7.cs:14:9:14:13 | [post] this access | CSharp7.cs:23:39:23:43 | this access | -| CSharp7.cs:14:9:14:13 | this access | CSharp7.cs:23:39:23:43 | this access | -| CSharp7.cs:14:17:14:17 | 0 | CSharp7.cs:14:9:14:13 | access to field field | -| CSharp7.cs:15:9:15:11 | SSA entry def(this.field) | CSharp7.cs:15:18:15:22 | access to field field | -| CSharp7.cs:15:9:15:11 | this | CSharp7.cs:15:18:15:22 | this access | +| CSharp7.cs:12:7:12:29 | this | CSharp7.cs:14:9:14:14 | this access | +| CSharp7.cs:14:18:14:18 | 0 | CSharp7.cs:14:9:14:14 | access to field field | +| CSharp7.cs:15:9:15:11 | SSA entry def(this.field) | CSharp7.cs:15:18:15:23 | access to field field | +| CSharp7.cs:15:9:15:11 | this | CSharp7.cs:15:18:15:23 | this access | | CSharp7.cs:19:9:19:11 | this | CSharp7.cs:19:16:19:20 | this access | -| CSharp7.cs:20:9:20:11 | SSA param(value) | CSharp7.cs:20:24:20:28 | access to parameter value | -| CSharp7.cs:20:9:20:11 | this | CSharp7.cs:20:16:20:20 | this access | +| CSharp7.cs:20:9:20:11 | SSA param(value) | CSharp7.cs:20:25:20:29 | access to parameter value | +| CSharp7.cs:20:9:20:11 | this | CSharp7.cs:20:16:20:21 | this access | | CSharp7.cs:20:9:20:11 | value | CSharp7.cs:20:9:20:11 | SSA param(value) | -| CSharp7.cs:20:24:20:28 | access to parameter value | CSharp7.cs:20:16:20:20 | access to field field | -| CSharp7.cs:23:5:23:27 | this | CSharp7.cs:14:9:14:13 | this access | +| CSharp7.cs:20:25:20:29 | access to parameter value | CSharp7.cs:20:16:20:21 | access to field field | +| CSharp7.cs:23:5:23:27 | [post] this access | CSharp7.cs:23:39:23:43 | this access | +| CSharp7.cs:23:5:23:27 | this | CSharp7.cs:23:5:23:27 | this access | +| CSharp7.cs:23:5:23:27 | this access | CSharp7.cs:23:39:23:43 | this access | | CSharp7.cs:24:6:24:28 | this | CSharp7.cs:24:35:24:39 | this access | +| CSharp7.cs:27:7:27:15 | this | CSharp7.cs:27:7:27:15 | this access | | CSharp7.cs:29:19:29:19 | SSA param(i) | CSharp7.cs:31:16:31:16 | access to parameter i | | CSharp7.cs:29:19:29:19 | i | CSharp7.cs:29:19:29:19 | SSA param(i) | | CSharp7.cs:31:16:31:16 | access to parameter i | CSharp7.cs:31:16:31:20 | ... > ... | | CSharp7.cs:31:16:31:16 | access to parameter i | CSharp7.cs:31:24:31:24 | access to parameter i | | CSharp7.cs:31:24:31:24 | access to parameter i | CSharp7.cs:31:16:31:59 | ... ? ... : ... | +| CSharp7.cs:35:7:35:18 | this | CSharp7.cs:35:7:35:18 | this access | | CSharp7.cs:39:9:39:9 | access to parameter x | CSharp7.cs:39:9:39:21 | SSA def(x) | | CSharp7.cs:39:13:39:21 | "tainted" | CSharp7.cs:39:9:39:9 | access to parameter x | | CSharp7.cs:42:19:42:19 | SSA param(x) | CSharp7.cs:44:13:44:13 | access to parameter x | @@ -48,6 +52,7 @@ | CSharp7.cs:55:30:55:31 | SSA def(t4) | CSharp7.cs:56:18:56:19 | access to local variable t4 | | CSharp7.cs:55:30:55:31 | String t4 | CSharp7.cs:55:30:55:31 | SSA def(t4) | | CSharp7.cs:56:18:56:19 | access to local variable t4 | CSharp7.cs:56:13:56:14 | access to local variable t5 | +| CSharp7.cs:60:7:60:12 | this | CSharp7.cs:60:7:60:12 | this access | | CSharp7.cs:67:10:67:20 | this | CSharp7.cs:69:26:69:28 | this access | | CSharp7.cs:69:26:69:28 | [post] this access | CSharp7.cs:70:17:70:19 | this access | | CSharp7.cs:69:26:69:28 | call to method F | CSharp7.cs:69:9:69:22 | (..., ...) | @@ -136,6 +141,7 @@ | CSharp7.cs:121:22:121:36 | ... = ... | CSharp7.cs:121:16:121:18 | access to local variable m13 | | CSharp7.cs:121:28:121:36 | "DefUse3" | CSharp7.cs:121:22:121:24 | access to local variable m12 | | CSharp7.cs:121:28:121:36 | "DefUse3" | CSharp7.cs:121:22:121:36 | ... = ... | +| CSharp7.cs:125:7:125:20 | this | CSharp7.cs:125:7:125:20 | this access | | CSharp7.cs:127:9:127:12 | this | CSharp7.cs:133:24:133:25 | this access | | CSharp7.cs:129:20:129:20 | SSA param(x) | CSharp7.cs:129:32:129:32 | access to parameter x | | CSharp7.cs:129:20:129:20 | x | CSharp7.cs:129:20:129:20 | SSA param(x) | @@ -191,6 +197,7 @@ | CSharp7.cs:181:23:181:25 | [post] access to local variable src | CSharp7.cs:182:23:182:25 | access to local variable src | | CSharp7.cs:181:23:181:25 | access to local variable src | CSharp7.cs:182:23:182:25 | access to local variable src | | CSharp7.cs:182:21:182:26 | call to local function h | CSharp7.cs:182:13:182:17 | access to local variable sink3 | +| CSharp7.cs:186:7:186:10 | this | CSharp7.cs:186:7:186:10 | this access | | CSharp7.cs:188:10:188:11 | this | CSharp7.cs:197:14:197:23 | this access | | CSharp7.cs:190:13:190:14 | access to local variable v1 | CSharp7.cs:190:13:190:18 | SSA def(v1) | | CSharp7.cs:190:13:190:18 | SSA def(v1) | CSharp7.cs:191:26:191:27 | access to local variable v1 | @@ -224,6 +231,7 @@ | CSharp7.cs:202:24:202:24 | p | CSharp7.cs:202:24:202:24 | SSA param(p) | | CSharp7.cs:204:28:204:28 | SSA param(q) | CSharp7.cs:204:44:204:44 | access to parameter q | | CSharp7.cs:204:28:204:28 | q | CSharp7.cs:204:28:204:28 | SSA param(q) | +| CSharp7.cs:211:7:211:14 | this | CSharp7.cs:211:7:211:14 | this access | | CSharp7.cs:215:9:215:9 | access to parameter x | CSharp7.cs:215:9:215:17 | SSA def(x) | | CSharp7.cs:215:13:215:17 | false | CSharp7.cs:215:9:215:9 | access to parameter x | | CSharp7.cs:219:10:219:13 | this | CSharp7.cs:221:13:221:20 | this access | @@ -237,6 +245,7 @@ | CSharp7.cs:223:22:223:29 | call to method f | CSharp7.cs:223:9:223:18 | (..., ...) | | CSharp7.cs:223:22:223:29 | this access | CSharp7.cs:224:22:224:33 | this access | | CSharp7.cs:224:22:224:33 | call to method f | CSharp7.cs:224:9:224:18 | (..., ...) | +| CSharp7.cs:228:7:228:14 | this | CSharp7.cs:228:7:228:14 | this access | | CSharp7.cs:232:16:232:16 | access to local variable o | CSharp7.cs:232:16:232:23 | SSA def(o) | | CSharp7.cs:232:16:232:23 | SSA def(o) | CSharp7.cs:233:13:233:13 | access to local variable o | | CSharp7.cs:232:20:232:23 | null | CSharp7.cs:232:16:232:16 | access to local variable o | @@ -303,6 +312,7 @@ | CSharp7.cs:264:37:264:43 | "string " | CSharp7.cs:264:35:264:48 | $"..." | | CSharp7.cs:264:44:264:47 | {...} | CSharp7.cs:264:35:264:48 | $"..." | | CSharp7.cs:264:45:264:46 | access to local variable s2 | CSharp7.cs:264:44:264:47 | {...} | +| CSharp7.cs:278:7:278:23 | this | CSharp7.cs:278:7:278:23 | this access | | CSharp7.cs:282:13:282:16 | access to local variable dict | CSharp7.cs:282:13:282:48 | SSA def(dict) | | CSharp7.cs:282:13:282:48 | SSA def(dict) | CSharp7.cs:283:20:283:23 | access to local variable dict | | CSharp7.cs:282:20:282:48 | object creation of type Dictionary | CSharp7.cs:282:13:282:16 | access to local variable dict | @@ -316,6 +326,7 @@ | CSharp7.cs:283:51:283:54 | access to parameter item | CSharp7.cs:283:51:283:60 | access to property Value | | CSharp7.cs:285:39:285:42 | access to local variable list | CSharp7.cs:287:36:287:39 | access to local variable list | | CSharp7.cs:287:36:287:39 | access to local variable list | CSharp7.cs:289:32:289:35 | access to local variable list | +| CSharp7.cs:293:7:293:14 | this | CSharp7.cs:293:7:293:14 | this access | | CSharp7.cs:297:18:297:18 | access to local variable x | CSharp7.cs:297:18:297:22 | SSA def(x) | | CSharp7.cs:297:18:297:22 | SSA def(x) | CSharp7.cs:297:25:297:25 | access to local variable x | | CSharp7.cs:297:22:297:22 | 0 | CSharp7.cs:297:18:297:18 | access to local variable x | diff --git a/csharp/ql/test/library-tests/csharp7/PrintAst.expected b/csharp/ql/test/library-tests/csharp7/PrintAst.expected index bf0b07abbeb..47ab207bb55 100644 --- a/csharp/ql/test/library-tests/csharp7/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp7/PrintAst.expected @@ -1,26 +1,26 @@ CSharp7.cs: # 5| [Class] Literals -# 7| 5: [Field] x +# 7| 6: [Field] x # 7| -1: [TypeMention] int # 7| 1: [IntLiteral] 11 -# 8| 6: [Field] y +# 8| 7: [Field] y # 8| -1: [TypeMention] int # 8| 1: [IntLiteral] 123456 -# 9| 7: [Field] z +# 9| 8: [Field] z # 9| -1: [TypeMention] int # 9| 1: [IntLiteral] 128 # 12| [Class] ExpressionBodiedMembers -# 14| 4: [Field] field +# 14| 5: [Field] field # 14| -1: [TypeMention] int # 14| 1: [IntLiteral] 0 -# 15| 5: [Method] Foo +# 15| 6: [Method] Foo # 15| -1: [TypeMention] int # 15| 4: [FieldAccess] access to field field -# 16| 6: [Property] P +# 16| 7: [Property] P # 16| -1: [TypeMention] int # 16| 3: [Getter] get_P # 16| 4: [IntLiteral] 5 -# 17| 7: [Property] Q +# 17| 8: [Property] Q # 17| -1: [TypeMention] int # 19| 3: [Getter] get_Q # 19| 4: [MethodCall] call to method Foo @@ -30,19 +30,19 @@ CSharp7.cs: # 20| 4: [AssignExpr] ... = ... # 20| 0: [FieldAccess] access to field field # 20| 1: [ParameterAccess] access to parameter value -# 22| 8: [InstanceConstructor] ExpressionBodiedMembers +# 22| 9: [InstanceConstructor] ExpressionBodiedMembers # 22| 3: [ConstructorInitializer] call to constructor ExpressionBodiedMembers # 22| 0: [IntLiteral] 1 # 22| 4: [BlockStmt] {...} -# 23| 9: [InstanceConstructor] ExpressionBodiedMembers +# 23| 10: [InstanceConstructor] ExpressionBodiedMembers #-----| 2: (Parameters) # 23| 0: [Parameter] x # 23| -1: [TypeMention] int # 23| 4: [MethodCall] call to method Foo -# 24| 10: [Destructor] ~ExpressionBodiedMembers +# 24| 11: [Destructor] ~ExpressionBodiedMembers # 24| 4: [MethodCall] call to method Foo # 27| [Class] ThrowExpr -# 29| 5: [Method] Throw +# 29| 6: [Method] Throw # 29| -1: [TypeMention] int #-----| 2: (Parameters) # 29| 0: [Parameter] i @@ -59,7 +59,7 @@ CSharp7.cs: # 31| -1: [TypeMention] ArgumentException # 31| 0: [StringLiteralUtf16] "i" # 35| [Class] OutVariables -# 37| 5: [Method] F +# 37| 6: [Method] F # 37| -1: [TypeMention] Void #-----| 2: (Parameters) # 37| 0: [Parameter] x @@ -69,7 +69,7 @@ CSharp7.cs: # 39| 0: [AssignExpr] ... = ... # 39| 0: [ParameterAccess] access to parameter x # 39| 1: [StringLiteralUtf16] "tainted" -# 42| 6: [Method] G +# 42| 7: [Method] G # 42| -1: [TypeMention] Void #-----| 2: (Parameters) # 42| 0: [Parameter] x @@ -81,7 +81,7 @@ CSharp7.cs: # 44| 0: [AssignExpr] ... = ... # 44| 0: [ParameterAccess] access to parameter y # 44| 1: [ParameterAccess] access to parameter x -# 47| 7: [Method] G +# 47| 8: [Method] G # 47| -1: [TypeMention] Void # 48| 4: [BlockStmt] {...} # 49| 0: [ExprStmt] ...; @@ -116,7 +116,7 @@ CSharp7.cs: # 56| 0: [LocalVariableAccess] access to local variable t5 # 56| 1: [LocalVariableAccess] access to local variable t4 # 60| [Class] Tuples -# 62| 5: [Method] F +# 62| 6: [Method] F # 62| -1: [TypeMention] (int, int) # 62| 1: [TypeMention] int # 62| 2: [TypeMention] int @@ -125,7 +125,7 @@ CSharp7.cs: # 64| 0: [TupleExpr] (..., ...) # 64| 0: [IntLiteral] 1 # 64| 1: [IntLiteral] 2 -# 67| 6: [Method] Expressions +# 67| 7: [Method] Expressions # 67| -1: [TypeMention] Void # 68| 4: [BlockStmt] {...} # 69| 0: [ExprStmt] ...; @@ -203,7 +203,7 @@ CSharp7.cs: # 77| 1: [TupleExpr] (..., ...) # 77| 0: [StringLiteralUtf16] "" # 77| 1: [LocalVariableAccess] access to local variable x -# 80| 7: [Method] I +# 80| 8: [Method] I # 80| -1: [TypeMention] string #-----| 2: (Parameters) # 80| 0: [Parameter] x @@ -214,7 +214,7 @@ CSharp7.cs: # 82| -1: [TupleExpr] (..., ...) # 82| 0: [ParameterAccess] access to parameter x # 82| 1: [IntLiteral] 2 -# 85| 8: [Method] TaintFlow +# 85| 9: [Method] TaintFlow # 85| -1: [TypeMention] Void # 86| 4: [BlockStmt] {...} # 87| 0: [LocalVariableDeclStmt] ... ...; @@ -242,7 +242,7 @@ CSharp7.cs: # 90| 1: [MethodCall] call to method I # 90| 0: [FieldAccess] access to field Item1 # 90| -1: [LocalVariableAccess] access to local variable t1 -# 93| 9: [Method] TupleExprNode +# 93| 10: [Method] TupleExprNode # 93| -1: [TypeMention] Void # 94| 4: [BlockStmt] {...} # 95| 0: [LocalVariableDeclStmt] ... ...; @@ -261,7 +261,7 @@ CSharp7.cs: # 96| 1: [TupleExpr] (..., ...) # 96| 0: [StringLiteralUtf16] "TupleExprNode2" # 96| 1: [IntLiteral] 2 -# 99| 10: [Method] TupleMemberAccess +# 99| 11: [Method] TupleMemberAccess # 99| -1: [TypeMention] Void # 100| 4: [BlockStmt] {...} # 101| 0: [LocalVariableDeclStmt] ... ...; @@ -282,7 +282,7 @@ CSharp7.cs: # 102| 1: [TupleExpr] (..., ...) # 102| 0: [StringLiteralUtf16] "TupleMemberAccess2" # 102| 1: [IntLiteral] 1 -# 105| 11: [Method] DefUse +# 105| 12: [Method] DefUse # 105| -1: [TypeMention] Void # 106| 4: [BlockStmt] {...} # 107| 0: [ExprStmt] ...; @@ -361,7 +361,7 @@ CSharp7.cs: # 121| 0: [LocalVariableAccess] access to local variable m12 # 121| 1: [StringLiteralUtf16] "DefUse3" # 125| [Class] LocalFunctions -# 127| 5: [Method] Main +# 127| 6: [Method] Main # 127| -1: [TypeMention] int # 128| 4: [BlockStmt] {...} # 129| 0: [LocalFunctionStmt] f1(...) @@ -462,7 +462,7 @@ CSharp7.cs: # 154| 0: [LocalFunctionCall] call to local function f1 # 154| -1: [LocalFunctionAccess] access to local function f1 # 154| 0: [IntLiteral] 2 -# 157| 6: [Method] Generics +# 157| 7: [Method] Generics # 157| -1: [TypeMention] Void # 158| 4: [BlockStmt] {...} # 159| 0: [LocalFunctionStmt] f(...) @@ -517,7 +517,7 @@ CSharp7.cs: # 170| -1: [LocalFunctionAccess] access to local function h # 170| 0: [StringLiteralUtf16] "" # 170| 1: [BoolLiteral] true -# 173| 7: [Method] GlobalFlow +# 173| 8: [Method] GlobalFlow # 173| -1: [TypeMention] Void # 174| 4: [BlockStmt] {...} # 175| 0: [LocalVariableDeclStmt] ... ...; @@ -571,7 +571,7 @@ CSharp7.cs: # 182| -1: [LocalFunctionAccess] access to local function h # 182| 0: [LocalVariableAccess] access to local variable src # 186| [Class] Refs -# 188| 5: [Method] F1 +# 188| 6: [Method] F1 # 188| -1: [TypeMention] Void # 189| 4: [BlockStmt] {...} # 190| 0: [LocalVariableDeclStmt] ... ...; @@ -634,7 +634,7 @@ CSharp7.cs: # 199| 0: [MethodCall] call to method F2 # 199| 0: [LocalVariableAccess] access to local variable r1 # 199| 1: [IntLiteral] 3 -# 202| 6: [Method] F2 +# 202| 7: [Method] F2 # 202| -1: [TypeMention] int #-----| 2: (Parameters) # 202| 0: [Parameter] p @@ -652,12 +652,12 @@ CSharp7.cs: # 205| 1: [ReturnStmt] return ...; # 205| 0: [RefExpr] ref ... # 205| 0: [ParameterAccess] access to parameter p -# 208| 7: [DelegateType] RefFn +# 208| 8: [DelegateType] RefFn #-----| 2: (Parameters) # 208| 0: [Parameter] p # 208| -1: [TypeMention] int # 211| [Class] Discards -# 213| 5: [Method] f +# 213| 6: [Method] f # 213| -1: [TypeMention] (int, double) # 213| 1: [TypeMention] int # 213| 2: [TypeMention] double @@ -673,7 +673,7 @@ CSharp7.cs: # 216| 0: [TupleExpr] (..., ...) # 216| 0: [IntLiteral] 0 # 216| 1: [DoubleLiteral] 0 -# 219| 6: [Method] Test +# 219| 7: [Method] Test # 219| -1: [TypeMention] Void # 220| 4: [BlockStmt] {...} # 221| 0: [ExprStmt] ...; @@ -703,7 +703,7 @@ CSharp7.cs: # 224| 1: [MethodCall] call to method f # 224| 0: [LocalVariableAccess,LocalVariableDeclExpr] Boolean z # 228| [Class] Patterns -# 230| 5: [Method] Test +# 230| 6: [Method] Test # 230| -1: [TypeMention] Void # 231| 4: [BlockStmt] {...} # 232| 0: [LocalVariableDeclStmt] ... ...; @@ -839,7 +839,7 @@ CSharp7.cs: # 272| 0: [StringLiteralUtf16] "Something else" # 273| 23: [BreakStmt] break; # 278| [Class] ForeachStatements -# 280| 5: [Method] Test +# 280| 6: [Method] Test # 280| -1: [TypeMention] Void # 281| 4: [BlockStmt] {...} # 282| 0: [LocalVariableDeclStmt] ... ...; @@ -883,7 +883,7 @@ CSharp7.cs: # 289| 1: [LocalVariableAccess] access to local variable list # 289| 2: [BlockStmt] {...} # 293| [Class] ForLoops -# 295| 5: [Method] Test +# 295| 6: [Method] Test # 295| -1: [TypeMention] Void # 296| 4: [BlockStmt] {...} # 297| 0: [ForStmt] for (...;...;...) ... diff --git a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected index 6ad47e73d01..fb2ca2f1759 100644 --- a/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected +++ b/csharp/ql/test/library-tests/csharp8/NullableRefTypes.expected @@ -153,6 +153,7 @@ arrayElements | NullableRefTypes.cs:150:27:150:27 | k | NullableRefTypes.cs:6:7:6:13 | MyClass[,,,][][,][,,] | NullableRefTypes.cs:6:7:6:13 | MyClass[][,][,,] | | NullableRefTypes.cs:151:29:151:29 | l | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]?[,,] | NullableRefTypes.cs:6:7:6:13 | MyClass?[,,,][][,]? | returnTypes +| NullableRefTypes.cs:6:7:6:13 | | Void | | NullableRefTypes.cs:6:7:6:13 | MyClass | Void! | | NullableRefTypes.cs:13:19:13:22 | get_C | MyClass? | | NullableRefTypes.cs:14:18:14:21 | get_D | MyClass! | @@ -179,14 +180,18 @@ returnTypes | NullableRefTypes.cs:51:12:51:15 | Q | object! | | NullableRefTypes.cs:51:12:51:15 | Q`1 | object! | | NullableRefTypes.cs:54:11:54:17 | Generic | Void! | +| NullableRefTypes.cs:54:11:54:33 | | Void | | NullableRefTypes.cs:58:11:58:18 | Generic2 | Void! | +| NullableRefTypes.cs:58:11:58:26 | | Void | | NullableRefTypes.cs:67:10:67:21 | GenericFn | Void | | NullableRefTypes.cs:67:10:67:21 | GenericFn | Void! | | NullableRefTypes.cs:67:10:67:21 | GenericFn`1 | Void! | | NullableRefTypes.cs:71:14:71:18 | CallF | MyStruct! | +| NullableRefTypes.cs:80:7:80:22 | | Void | | NullableRefTypes.cs:80:7:80:22 | NullableRefTypes | Void! | | NullableRefTypes.cs:82:10:82:40 | TestSuppressNullableWarningExpr | Void! | | NullableRefTypes.cs:91:10:91:34 | FunctionInNullableContext | Void! | +| NullableRefTypes.cs:100:7:100:14 | | Void | | NullableRefTypes.cs:100:7:100:14 | RefTypes | Void! | | NullableRefTypes.cs:103:18:103:28 | ReturnsRef1 | ref MyClass? | | NullableRefTypes.cs:104:17:104:27 | ReturnsRef2 | ref MyClass! | @@ -196,12 +201,17 @@ returnTypes | NullableRefTypes.cs:108:26:108:36 | ReturnsRef6 | readonly MyClass! | | NullableRefTypes.cs:110:10:110:20 | Parameters1 | Void! | | NullableRefTypes.cs:113:32:113:44 | get_RefProperty | MyClass! | +| NullableRefTypes.cs:116:7:116:23 | | Void | | NullableRefTypes.cs:116:7:116:23 | ToStringWithTypes | Void! | +| NullableRefTypes.cs:136:7:136:24 | | Void | | NullableRefTypes.cs:136:7:136:24 | ToStringWithTypes2 | Void! | +| NullableRefTypes.cs:154:7:154:25 | | Void | | NullableRefTypes.cs:154:7:154:25 | DisabledNullability | Void! | | NullableRefTypes.cs:157:18:157:30 | get_P | MyClass | | NullableRefTypes.cs:158:13:158:14 | Fn | MyClass | +| NullableRefTypes.cs:165:8:165:15 | | Void | | NullableRefTypes.cs:165:8:165:15 | MyStruct | Void! | +| NullableRefTypes.cs:171:16:171:37 | | Void | | NullableRefTypes.cs:171:16:171:37 | TestNullableFlowStates | Void! | | NullableRefTypes.cs:173:29:173:37 | MaybeNull | string? | | NullableRefTypes.cs:175:26:175:30 | Check | Void! | @@ -245,6 +255,8 @@ annotatedTypeConstraints typeNotAnnotated expressionTypes | NullableRefTypes.cs:6:7:6:13 | call to constructor Object | object | +| NullableRefTypes.cs:6:7:6:13 | call to method | Void | +| NullableRefTypes.cs:6:7:6:13 | this access | MyClass | | NullableRefTypes.cs:13:19:13:22 | null | null | | NullableRefTypes.cs:14:18:14:21 | this access | MyClass! | | NullableRefTypes.cs:17:29:17:32 | null | null | @@ -272,7 +284,11 @@ expressionTypes | NullableRefTypes.cs:40:30:40:30 | access to local variable b | MyClass? | | NullableRefTypes.cs:51:44:51:47 | null | null | | NullableRefTypes.cs:54:11:54:17 | call to constructor Object | object | +| NullableRefTypes.cs:54:11:54:17 | call to method | Void | +| NullableRefTypes.cs:54:11:54:17 | this access | Generic | | NullableRefTypes.cs:58:11:58:18 | call to constructor Object | object | +| NullableRefTypes.cs:58:11:58:18 | call to method | Void | +| NullableRefTypes.cs:58:11:58:18 | this access | Generic2 | | NullableRefTypes.cs:73:18:73:18 | access to local variable x | MyClass! | | NullableRefTypes.cs:73:18:73:25 | MyClass x = ... | MyClass! | | NullableRefTypes.cs:73:22:73:25 | null | null | @@ -285,6 +301,8 @@ expressionTypes | NullableRefTypes.cs:76:16:76:32 | default(...) | MyStruct! | | NullableRefTypes.cs:76:24:76:31 | access to type MyStruct | MyStruct | | NullableRefTypes.cs:80:7:80:22 | call to constructor Object | object | +| NullableRefTypes.cs:80:7:80:22 | call to method | Void | +| NullableRefTypes.cs:80:7:80:22 | this access | NullableRefTypes | | NullableRefTypes.cs:84:17:84:17 | access to local variable x | string! | | NullableRefTypes.cs:84:17:84:28 | String x = ... | string! | | NullableRefTypes.cs:84:21:84:28 | "source" | string! | @@ -318,6 +336,8 @@ expressionTypes | NullableRefTypes.cs:96:9:96:28 | call to method WriteLine | Void! | | NullableRefTypes.cs:96:27:96:27 | access to local variable x | string? | | NullableRefTypes.cs:100:7:100:14 | call to constructor Object | object | +| NullableRefTypes.cs:100:7:100:14 | call to method | Void | +| NullableRefTypes.cs:100:7:100:14 | this access | RefTypes | | NullableRefTypes.cs:103:48:103:52 | ref ... | MyClass | | NullableRefTypes.cs:103:52:103:52 | access to parameter r | MyClass! | | NullableRefTypes.cs:104:48:104:52 | ref ... | MyClass | @@ -337,15 +357,25 @@ expressionTypes | NullableRefTypes.cs:113:36:113:43 | this access | RefTypes | | NullableRefTypes.cs:113:36:113:44 | ...! | MyClass? | | NullableRefTypes.cs:116:7:116:23 | call to constructor Object | object | +| NullableRefTypes.cs:116:7:116:23 | call to method | Void | +| NullableRefTypes.cs:116:7:116:23 | this access | ToStringWithTypes | | NullableRefTypes.cs:136:7:136:24 | call to constructor Object | object | +| NullableRefTypes.cs:136:7:136:24 | call to method | Void | +| NullableRefTypes.cs:136:7:136:24 | this access | ToStringWithTypes2 | | NullableRefTypes.cs:154:7:154:25 | call to constructor Object | object | +| NullableRefTypes.cs:154:7:154:25 | call to method | Void | +| NullableRefTypes.cs:154:7:154:25 | this access | DisabledNullability | | NullableRefTypes.cs:157:18:157:30 | object creation of type MyClass | MyClass | | NullableRefTypes.cs:160:17:160:17 | access to local variable a | MyClass | | NullableRefTypes.cs:160:17:160:21 | MyClass a = ... | MyClass | | NullableRefTypes.cs:160:21:160:21 | access to parameter p | MyClass | | NullableRefTypes.cs:161:16:161:16 | access to local variable a | MyClass | | NullableRefTypes.cs:165:8:165:15 | call to constructor ValueType | ValueType | +| NullableRefTypes.cs:165:8:165:15 | call to method | Void | +| NullableRefTypes.cs:165:8:165:15 | this access | MyStruct | | NullableRefTypes.cs:171:16:171:37 | call to constructor Object | object | +| NullableRefTypes.cs:171:16:171:37 | call to method | Void | +| NullableRefTypes.cs:171:16:171:37 | this access | TestNullableFlowStates | | NullableRefTypes.cs:181:17:181:17 | access to local variable x | string! | | NullableRefTypes.cs:181:17:181:31 | String x = ... | string! | | NullableRefTypes.cs:181:21:181:31 | call to method MaybeNull | string? | diff --git a/csharp/ql/test/library-tests/csharp8/PrintAst.expected b/csharp/ql/test/library-tests/csharp8/PrintAst.expected index 4ec30c915b3..f5eb7caab57 100644 --- a/csharp/ql/test/library-tests/csharp8/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp8/PrintAst.expected @@ -1,12 +1,12 @@ AlternateInterpolatedStrings.cs: # 3| [Class] AlternateInterpolatedStrings -# 5| 5: [Field] s1 +# 5| 6: [Field] s1 # 5| -1: [TypeMention] string # 5| 1: [InterpolatedStringExpr] $"..." # 5| 0: [StringLiteralUtf16] "C:" # 5| 1: [InterpolatedStringInsertExpr] {...} # 5| 0: [IntLiteral] 12 -# 6| 6: [Field] s2 +# 6| 7: [Field] s2 # 6| -1: [TypeMention] string # 6| 1: [InterpolatedStringExpr] $"..." # 6| 0: [StringLiteralUtf16] "C:" @@ -14,7 +14,7 @@ AlternateInterpolatedStrings.cs: # 6| 0: [IntLiteral] 12 AsyncStreams.cs: # 6| [Class] AsyncStreams -# 8| 5: [Method] Items +# 8| 6: [Method] Items # 8| -1: [TypeMention] IAsyncEnumerable # 8| 1: [TypeMention] int # 8| 4: [BlockStmt] {...} @@ -30,7 +30,7 @@ AsyncStreams.cs: # 11| 0: [IntLiteral] 1000 # 12| 3: [YieldReturnStmt] yield return ...; # 12| 0: [IntLiteral] 3 -# 15| 6: [Method] F +# 15| 7: [Method] F # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [ForeachStmt] foreach (... ... in ...) ... @@ -103,11 +103,11 @@ DefaultInterfaceMethods.cs: # 20| [Class] Person #-----| 3: (Base types) # 20| 1: [TypeMention] IPerson -# 22| 5: [Property] Name +# 22| 6: [Property] Name # 22| -1: [TypeMention] string # 22| 3: [Getter] get_Name # 22| 4: [StringLiteralUtf16] "Petra" -# 24| 6: [Property] Greeting +# 24| 7: [Property] Greeting # 24| -1: [TypeMention] IPerson # 24| -1: [TypeMention] string # 24| 3: [Getter] get_Greeting @@ -116,14 +116,14 @@ DefaultInterfaceMethods.cs: #-----| 2: (Parameters) # 24| 0: [Parameter] value # 24| 4: [BlockStmt] {...} -# 26| 7: [Method] Greet +# 26| 8: [Method] Greet # 26| -1: [TypeMention] Void # 26| 4: [BlockStmt] {...} NameResolutionSuppressNullable.cs: # 5| [Class] MyClass2 -# 7| 5: [Field] s_signalMethod +# 7| 6: [Field] s_signalMethod # 7| -1: [TypeMention] WaitCallback -# 8| 6: [Property] SignalMethod +# 8| 7: [Property] SignalMethod # 8| -1: [TypeMention] WaitCallback # 8| 3: [Getter] get_SignalMethod # 8| 4: [MethodCall] call to method EnsureInitialized @@ -133,7 +133,7 @@ NameResolutionSuppressNullable.cs: # 8| -1: [TypeMention] WaitCallback # 8| 0: [SuppressNullableWarningExpr] ...! # 8| 0: [MethodAccess] access to method M1 -# 10| 8: [Method] EnsureInitialized`1 +# 10| 9: [Method] EnsureInitialized`1 # 10| -1: [TypeMention] T #-----| 1: (Type parameters) # 10| 0: [TypeParameter] T @@ -149,7 +149,7 @@ NameResolutionSuppressNullable.cs: # 10| 0: [ParameterAccess] access to parameter target # 10| 1: [DelegateCall] delegate call # 10| -1: [ParameterAccess] access to parameter valueFactory -# 12| 9: [Method] M1 +# 12| 10: [Method] M1 # 12| -1: [TypeMention] Void #-----| 2: (Parameters) # 12| 0: [Parameter] state @@ -157,7 +157,7 @@ NameResolutionSuppressNullable.cs: # 13| 4: [BlockStmt] {...} NullCoalescingAssignment.cs: # 3| [Class] NullCoalescingAssignment -# 5| 5: [Method] NullCoalescing +# 5| 6: [Method] NullCoalescing # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -171,19 +171,19 @@ NullCoalescingAssignment.cs: # 8| 1: [ThisAccess] this access NullableRefTypes.cs: # 6| [Class] MyClass -# 9| 5: [Field] A +# 9| 6: [Field] A # 9| -1: [TypeMention] MyClass -# 10| 6: [Field] B +# 10| 7: [Field] B # 10| -1: [TypeMention] MyClass -# 13| 7: [Property] C +# 13| 8: [Property] C # 13| -1: [TypeMention] MyClass # 13| 3: [Getter] get_C # 13| 4: [NullLiteral] null -# 14| 8: [Property] D +# 14| 9: [Property] D # 14| -1: [TypeMention] MyClass # 14| 3: [Getter] get_D # 14| 4: [ThisAccess] this access -# 17| 9: [Indexer] Item +# 17| 10: [Indexer] Item # 17| -1: [TypeMention] MyClass #-----| 1: (Parameters) # 17| 0: [Parameter] i @@ -192,7 +192,7 @@ NullableRefTypes.cs: #-----| 2: (Parameters) # 17| 0: [Parameter] i # 17| 4: [NullLiteral] null -# 18| 10: [Indexer] Item +# 18| 11: [Indexer] Item # 18| -1: [TypeMention] MyClass #-----| 1: (Parameters) # 18| 0: [Parameter] i @@ -201,7 +201,7 @@ NullableRefTypes.cs: #-----| 2: (Parameters) # 18| 0: [Parameter] i # 18| 4: [ThisAccess] this access -# 19| 11: [Indexer] Item +# 19| 12: [Indexer] Item # 19| -1: [TypeMention] MyClass #-----| 1: (Parameters) # 19| 0: [Parameter] i @@ -210,19 +210,19 @@ NullableRefTypes.cs: #-----| 2: (Parameters) # 19| 0: [Parameter] i # 19| 4: [ThisAccess] this access -# 22| 12: [Field] G1 +# 22| 13: [Field] G1 # 22| -1: [TypeMention] MyClass[] # 22| 1: [TypeMention] MyClass -# 23| 13: [Field] G2 +# 23| 14: [Field] G2 # 23| -1: [TypeMention] MyClass[] # 23| 1: [TypeMention] MyClass -# 24| 14: [Field] G3 +# 24| 15: [Field] G3 # 24| -1: [TypeMention] MyClass[] # 24| 1: [TypeMention] MyClass -# 25| 15: [Field] H +# 25| 16: [Field] H # 25| -1: [TypeMention] MyClass[][] # 25| 1: [TypeMention] MyClass -# 26| 16: [Method] ArrayFn1 +# 26| 17: [Method] ArrayFn1 # 26| -1: [TypeMention] MyClass[] # 26| 1: [TypeMention] MyClass #-----| 2: (Parameters) @@ -231,7 +231,7 @@ NullableRefTypes.cs: # 26| 1: [TypeMention] MyClass # 26| 4: [ThrowExpr] throw ... # 26| 0: [NullLiteral] null -# 27| 17: [Method] ArrayFn2 +# 27| 18: [Method] ArrayFn2 # 27| -1: [TypeMention] MyClass[] # 27| 1: [TypeMention] MyClass #-----| 2: (Parameters) @@ -240,13 +240,13 @@ NullableRefTypes.cs: # 27| 1: [TypeMention] MyClass # 27| 4: [ThrowExpr] throw ... # 27| 0: [NullLiteral] null -# 30| 18: [Method] M +# 30| 19: [Method] M # 30| -1: [TypeMention] MyClass # 30| 4: [NullLiteral] null -# 31| 19: [Method] N +# 31| 20: [Method] N # 31| -1: [TypeMention] MyClass # 31| 4: [ThisAccess] this access -# 32| 20: [Method] O +# 32| 21: [Method] O # 32| -1: [TypeMention] Void #-----| 2: (Parameters) # 32| 0: [Parameter] a @@ -254,7 +254,7 @@ NullableRefTypes.cs: # 32| 1: [Parameter] b # 32| -1: [TypeMention] MyClass # 32| 4: [BlockStmt] {...} -# 35| 21: [Method] Locals +# 35| 22: [Method] Locals # 35| -1: [TypeMention] Void # 36| 4: [BlockStmt] {...} # 37| 0: [LocalVariableDeclStmt] ... ...; @@ -280,12 +280,12 @@ NullableRefTypes.cs: # 40| 0: [LocalVariableAccess] access to local variable d # 40| 1: [RefExpr] ref ... # 40| 0: [LocalVariableAccess] access to local variable b -# 44| 22: [DelegateType] Del1 -# 47| 23: [DelegateType] Del +# 44| 23: [DelegateType] Del1 +# 47| 24: [DelegateType] Del #-----| 2: (Parameters) # 47| 0: [Parameter] x # 47| -1: [TypeMention] MyClass -# 48| 24: [Event] P +# 48| 25: [Event] P # 48| -1: [TypeMention] Del # 48| 3: [AddEventAccessor] add_P #-----| 2: (Parameters) @@ -293,7 +293,7 @@ NullableRefTypes.cs: # 48| 4: [RemoveEventAccessor] remove_P #-----| 2: (Parameters) # 48| 0: [Parameter] value -# 51| 26: [Method] Q`1 +# 51| 27: [Method] Q`1 # 51| -1: [TypeMention] object #-----| 1: (Type parameters) # 51| 0: [TypeParameter] T @@ -301,23 +301,23 @@ NullableRefTypes.cs: # 51| 0: [Parameter] t # 51| -1: [TypeMention] T # 51| 4: [NullLiteral] null -# 54| 29: [Class] Generic`4 +# 54| 30: [Class] Generic`4 #-----| 1: (Type parameters) # 54| 0: [TypeParameter] T1 # 54| 1: [TypeParameter] T2 # 54| 2: [TypeParameter] T3 # 54| 3: [TypeParameter] T4 -# 58| 30: [Class] Generic2`2 +# 58| 31: [Class] Generic2`2 #-----| 1: (Type parameters) # 58| 0: [TypeParameter] T1 # 58| 1: [TypeParameter] T2 -# 65| 31: [Field] items2 +# 65| 32: [Field] items2 # 65| -1: [TypeMention] Generic # 65| 1: [TypeMention] MyClass # 65| 2: [TypeMention] MyClass # 65| 3: [TypeMention] IDisposable # 65| 4: [TypeMention] MyClass -# 67| 33: [Method] GenericFn`1 +# 67| 34: [Method] GenericFn`1 # 67| -1: [TypeMention] Void #-----| 1: (Type parameters) # 67| 0: [TypeParameter] T @@ -325,7 +325,7 @@ NullableRefTypes.cs: # 67| 0: [Parameter] x # 67| -1: [TypeMention] T # 68| 4: [BlockStmt] {...} -# 71| 34: [Method] CallF +# 71| 35: [Method] CallF # 71| -1: [TypeMention] MyStruct # 72| 4: [BlockStmt] {...} # 73| 0: [LocalVariableDeclStmt] ... ...; @@ -344,7 +344,7 @@ NullableRefTypes.cs: # 76| 0: [TypeAccess] access to type MyStruct # 76| 0: [TypeMention] MyStruct # 80| [Class] NullableRefTypes -# 82| 5: [Method] TestSuppressNullableWarningExpr +# 82| 6: [Method] TestSuppressNullableWarningExpr # 82| -1: [TypeMention] Void # 83| 4: [BlockStmt] {...} # 84| 0: [LocalVariableDeclStmt] ... ...; @@ -372,7 +372,7 @@ NullableRefTypes.cs: # 88| 0: [LocalVariableAccess] access to local variable y # 88| 1: [SuppressNullableWarningExpr] ...! # 88| 0: [LocalVariableAccess] access to local variable x -# 91| 6: [Method] FunctionInNullableContext +# 91| 7: [Method] FunctionInNullableContext # 91| -1: [TypeMention] Void # 92| 4: [BlockStmt] {...} # 93| 0: [LocalVariableDeclStmt] ... ...; @@ -398,49 +398,49 @@ NullableRefTypes.cs: # 96| 0: [TypeMention] Console # 96| 0: [LocalVariableAccess] access to local variable x # 100| [Class] RefTypes -# 103| 5: [Method] ReturnsRef1 +# 103| 6: [Method] ReturnsRef1 # 103| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 103| 0: [Parameter] r # 103| -1: [TypeMention] MyClass # 103| 4: [RefExpr] ref ... # 103| 0: [ParameterAccess] access to parameter r -# 104| 6: [Method] ReturnsRef2 +# 104| 7: [Method] ReturnsRef2 # 104| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 104| 0: [Parameter] r # 104| -1: [TypeMention] MyClass # 104| 4: [RefExpr] ref ... # 104| 0: [ParameterAccess] access to parameter r -# 105| 7: [Method] ReturnsRef3 +# 105| 8: [Method] ReturnsRef3 # 105| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 105| 0: [Parameter] r # 105| -1: [TypeMention] MyClass # 105| 4: [RefExpr] ref ... # 105| 0: [ParameterAccess] access to parameter r -# 106| 8: [Method] ReturnsRef4 +# 106| 9: [Method] ReturnsRef4 # 106| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 106| 0: [Parameter] r # 106| -1: [TypeMention] MyClass # 106| 4: [RefExpr] ref ... # 106| 0: [ParameterAccess] access to parameter r -# 107| 9: [Method] ReturnsRef5 +# 107| 10: [Method] ReturnsRef5 # 107| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 107| 0: [Parameter] r # 107| -1: [TypeMention] MyClass # 107| 4: [RefExpr] ref ... # 107| 0: [ParameterAccess] access to parameter r -# 108| 10: [Method] ReturnsRef6 +# 108| 11: [Method] ReturnsRef6 # 108| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 108| 0: [Parameter] r # 108| -1: [TypeMention] MyClass # 108| 4: [RefExpr] ref ... # 108| 0: [ParameterAccess] access to parameter r -# 110| 11: [Method] Parameters1 +# 110| 12: [Method] Parameters1 # 110| -1: [TypeMention] Void #-----| 2: (Parameters) # 110| 0: [Parameter] p1 @@ -449,99 +449,99 @@ NullableRefTypes.cs: # 110| -1: [TypeMention] MyClass # 110| 4: [ThrowExpr] throw ... # 110| 0: [NullLiteral] null -# 112| 12: [Field] Property +# 112| 13: [Field] Property # 112| -1: [TypeMention] MyClass -# 113| 13: [Property] RefProperty +# 113| 14: [Property] RefProperty # 113| -1: [TypeMention] MyClass # 113| 3: [Getter] get_RefProperty # 113| 4: [RefExpr] ref ... # 113| 0: [SuppressNullableWarningExpr] ...! # 113| 0: [FieldAccess] access to field Property # 116| [Class] ToStringWithTypes -# 118| 5: [Field] a +# 118| 6: [Field] a # 118| -1: [TypeMention] MyStruct? # 118| 1: [TypeMention] MyStruct -# 119| 6: [Field] b +# 119| 7: [Field] b # 119| -1: [TypeMention] MyStruct[] # 119| 1: [TypeMention] MyStruct -# 120| 7: [Field] c +# 120| 8: [Field] c # 120| -1: [TypeMention] Nullable[] # 120| 1: [TypeMention] MyStruct? # 120| 1: [TypeMention] MyStruct -# 121| 8: [Field] d +# 121| 9: [Field] d # 121| -1: [TypeMention] Nullable[] # 121| 1: [TypeMention] MyStruct? # 121| 1: [TypeMention] MyStruct -# 123| 9: [Field] e +# 123| 10: [Field] e # 123| -1: [TypeMention] MyClass -# 124| 10: [Field] f +# 124| 11: [Field] f # 124| -1: [TypeMention] MyClass[] # 124| 1: [TypeMention] MyClass -# 125| 11: [Field] g +# 125| 12: [Field] g # 125| -1: [TypeMention] MyClass[] # 125| 1: [TypeMention] MyClass -# 126| 12: [Field] h +# 126| 13: [Field] h # 126| -1: [TypeMention] MyClass[] # 126| 1: [TypeMention] MyClass -# 128| 13: [Field] i +# 128| 14: [Field] i # 128| -1: [TypeMention] MyClass[,][][,,] # 128| 1: [TypeMention] MyClass -# 129| 14: [Field] j +# 129| 15: [Field] j # 129| -1: [TypeMention] MyClass[,,][,][] # 129| 1: [TypeMention] MyClass -# 130| 15: [Field] k +# 130| 16: [Field] k # 130| -1: [TypeMention] MyClass[,,,][][,][,,] # 130| 1: [TypeMention] MyClass -# 131| 16: [Field] l +# 131| 17: [Field] l # 131| -1: [TypeMention] MyClass[,,][,,,][][,] # 131| 1: [TypeMention] MyClass # 136| [Class] ToStringWithTypes2 -# 138| 5: [Field] a +# 138| 6: [Field] a # 138| -1: [TypeMention] MyStruct? # 138| 1: [TypeMention] MyStruct -# 139| 6: [Field] b +# 139| 7: [Field] b # 139| -1: [TypeMention] MyStruct[] # 139| 1: [TypeMention] MyStruct -# 140| 7: [Field] c +# 140| 8: [Field] c # 140| -1: [TypeMention] Nullable[] # 140| 1: [TypeMention] MyStruct? # 140| 1: [TypeMention] MyStruct -# 141| 8: [Field] d +# 141| 9: [Field] d # 141| -1: [TypeMention] Nullable[] # 141| 1: [TypeMention] MyStruct? # 141| 1: [TypeMention] MyStruct -# 143| 9: [Field] e +# 143| 10: [Field] e # 143| -1: [TypeMention] MyClass -# 144| 10: [Field] f +# 144| 11: [Field] f # 144| -1: [TypeMention] MyClass[] # 144| 1: [TypeMention] MyClass -# 145| 11: [Field] g +# 145| 12: [Field] g # 145| -1: [TypeMention] MyClass[] # 145| 1: [TypeMention] MyClass -# 146| 12: [Field] h +# 146| 13: [Field] h # 146| -1: [TypeMention] MyClass[] # 146| 1: [TypeMention] MyClass -# 148| 13: [Field] i +# 148| 14: [Field] i # 148| -1: [TypeMention] MyClass[,][][,,] # 148| 1: [TypeMention] MyClass -# 149| 14: [Field] j +# 149| 15: [Field] j # 149| -1: [TypeMention] MyClass[,,][,][] # 149| 1: [TypeMention] MyClass -# 150| 15: [Field] k +# 150| 16: [Field] k # 150| -1: [TypeMention] MyClass[,,,][][,][,,] # 150| 1: [TypeMention] MyClass -# 151| 16: [Field] l +# 151| 17: [Field] l # 151| -1: [TypeMention] MyClass[,,][,,,][][,] # 151| 1: [TypeMention] MyClass # 154| [Class] DisabledNullability -# 156| 5: [Field] f1 +# 156| 6: [Field] f1 # 156| -1: [TypeMention] MyClass -# 157| 6: [Property] P +# 157| 7: [Property] P # 157| -1: [TypeMention] MyClass # 157| 3: [Getter] get_P # 157| 4: [ObjectCreation] object creation of type MyClass # 157| 0: [TypeMention] MyClass -# 158| 7: [Method] Fn +# 158| 8: [Method] Fn # 158| -1: [TypeMention] MyClass #-----| 2: (Parameters) # 158| 0: [Parameter] p @@ -556,16 +556,16 @@ NullableRefTypes.cs: # 161| 0: [LocalVariableAccess] access to local variable a # 165| [Struct] MyStruct # 171| [Class] TestNullableFlowStates -# 173| 5: [Method] MaybeNull +# 173| 6: [Method] MaybeNull # 173| -1: [TypeMention] string -# 175| 6: [Method] Check +# 175| 7: [Method] Check # 175| -1: [TypeMention] Void #-----| 2: (Parameters) # 175| 0: [Parameter] isNull # 175| -1: [TypeMention] string -# 177| 7: [Method] Count +# 177| 8: [Method] Count # 177| -1: [TypeMention] int -# 179| 8: [Method] LoopUnrolling +# 179| 9: [Method] LoopUnrolling # 179| -1: [TypeMention] Void # 180| 4: [BlockStmt] {...} # 181| 0: [LocalVariableDeclStmt] ... ...; @@ -594,7 +594,7 @@ NullableRefTypes.cs: # 190| 3: [ExprStmt] ...; # 190| 0: [MethodCall] call to method Check # 190| 0: [LocalVariableAccess] access to local variable x -# 193| 9: [Method] ExceptionFlow +# 193| 10: [Method] ExceptionFlow # 193| -1: [TypeMention] Void # 194| 4: [BlockStmt] {...} # 195| 0: [LocalVariableDeclStmt] ... ...; @@ -615,7 +615,7 @@ NullableRefTypes.cs: # 206| 2: [ExprStmt] ...; # 206| 0: [MethodCall] call to method Check # 206| 0: [LocalVariableAccess] access to local variable y -# 209| 10: [Method] InvocationTest +# 209| 11: [Method] InvocationTest # 209| -1: [TypeMention] string #-----| 2: (Parameters) # 209| 0: [Parameter] o @@ -630,7 +630,7 @@ NullableRefTypes.cs: # 212| 1: [ReturnStmt] return ...; # 212| 0: [MethodCall] call to method ToString # 212| -1: [LocalVariableAccess] access to local variable t -# 215| 11: [Method] ElementTest +# 215| 12: [Method] ElementTest # 215| -1: [TypeMention] Void #-----| 2: (Parameters) # 215| 0: [Parameter] list @@ -663,13 +663,13 @@ NullableRefTypes.cs: # 220| 0: [LocalVariableAccess] access to local variable d # 220| 1: [FieldAccess] access to field Field # 220| -1: [MethodCall] call to method GetSelf -# 223| 12: [Method] GetSelf +# 223| 13: [Method] GetSelf # 223| -1: [TypeMention] TestNullableFlowStates -# 225| 13: [Field] Field +# 225| 14: [Field] Field # 225| -1: [TypeMention] string StaticLocalFunctions.cs: # 3| [Class] StaticLocalFunctions -# 5| 5: [Method] Fn +# 5| 6: [Method] Fn # 5| -1: [TypeMention] int #-----| 2: (Parameters) # 5| 0: [Parameter] x @@ -702,15 +702,15 @@ UnmanagedGenericStructs.cs: #-----| 1: (Type parameters) # 3| 0: [TypeParameter] T # 3| 1: [TypeParameter] U -# 5| 5: [Field] id +# 5| 6: [Field] id # 5| -1: [TypeMention] int -# 6| 6: [Field] value1 +# 6| 7: [Field] value1 # 6| -1: [TypeMention] T -# 7| 7: [Field] value2 +# 7| 8: [Field] value2 # 7| -1: [TypeMention] U UsingDeclarations.cs: # 4| [Class] UsingDeclarations -# 6| 5: [Method] TestUsingDeclarations +# 6| 6: [Method] TestUsingDeclarations # 6| -1: [TypeMention] Void # 7| 4: [BlockStmt] {...} # 8| 0: [UsingDeclStmt] using ... ...; @@ -762,7 +762,7 @@ UsingDeclarations.cs: # 15| 1: [EmptyStmt] ; patterns.cs: # 3| [Class] Patterns -# 5| 5: [Method] IsPatterns +# 5| 6: [Method] IsPatterns # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -836,7 +836,7 @@ patterns.cs: # 27| 3: [PropertyPatternExpr] { ... } # 27| 0: [DiscardPatternExpr,LabeledPatternExpr] _ # 28| 1: [BlockStmt] {...} -# 32| 6: [Method] SwitchStatements +# 32| 7: [Method] SwitchStatements # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [LocalVariableDeclStmt] ... ...; @@ -1019,7 +1019,7 @@ patterns.cs: # 94| 0: [ConstantPatternExpr,IntLiteral] 2 # 94| 1: [DiscardPatternExpr] _ # 94| 3: [BreakStmt] break; -# 98| 7: [Method] Expressions +# 98| 8: [Method] Expressions # 98| -1: [TypeMention] Void #-----| 2: (Parameters) # 98| 0: [Parameter] x @@ -1108,7 +1108,7 @@ patterns.cs: # 119| 2: [TupleExpr] (..., ...) # 119| 0: [IntLiteral] 0 # 119| 1: [IntLiteral] 0 -# 123| 8: [Method] Expressions2 +# 123| 9: [Method] Expressions2 # 123| -1: [TypeMention] Void #-----| 2: (Parameters) # 123| 0: [Parameter] o @@ -1203,18 +1203,18 @@ patterns.cs: # 147| -1: [TypeAccess] access to type Console # 147| 0: [TypeMention] Console # 147| 0: [StringLiteralUtf16] "Invalid operation" -# 151| 9: [Struct] MyStruct -# 153| 5: [Field] X +# 151| 10: [Struct] MyStruct +# 153| 6: [Field] X # 153| -1: [TypeMention] int -# 154| 6: [Property] Y +# 154| 7: [Property] Y # 154| -1: [TypeMention] int # 154| 3: [Getter] get_Y # 154| 4: [IntLiteral] 10 -# 156| 7: [Property] S +# 156| 8: [Property] S # 156| -1: [TypeMention] MyStruct # 156| 3: [Getter] get_S # 156| 4: [ThisAccess] this access -# 158| 8: [Method] Deconstruct +# 158| 9: [Method] Deconstruct # 158| -1: [TypeMention] Void #-----| 2: (Parameters) # 158| 0: [Parameter] x @@ -1230,12 +1230,12 @@ patterns.cs: # 161| 0: [AssignExpr] ... = ... # 161| 0: [ParameterAccess] access to parameter y # 161| 1: [PropertyCall] access to property Y -# 164| 9: [Method] Deconstruct +# 164| 10: [Method] Deconstruct # 164| -1: [TypeMention] Void # 165| 4: [BlockStmt] {...} ranges.cs: # 3| [Class] Ranges -# 5| 5: [Method] F +# 5| 6: [Method] F # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected b/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected index eaa01512c18..a8db6605f8d 100644 --- a/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected +++ b/csharp/ql/test/library-tests/csharp9-standalone/globalStmt.expected @@ -7,4 +7,6 @@ globalBlock | GlobalStmt.cs:5:1:24:0 | {...} | GlobalStmt.cs:5:1:24:0 |
$ | GlobalStmt.cs:1:1:1:0 | args | GlobalStmt.cs:5:1:24:0 | Program | methods | GlobalStmt.cs:5:1:24:0 |
$ | entry | +| GlobalStmt.cs:5:1:24:0 | | non-entry | +| GlobalStmt.cs:17:14:17:17 | | non-entry | | GlobalStmt.cs:19:8:19:9 | M1 | non-entry | diff --git a/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected b/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected index 1bf279341ce..6d7e7ca40ef 100644 --- a/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected +++ b/csharp/ql/test/library-tests/csharp9/FunctionPointer.expected @@ -10,6 +10,7 @@ type | file://:0:0:0:0 | delegate* stdcall | Void | StdCallCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | int | UnmanagedCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | Void | UnmanagedCallingConvention | +| file://:0:0:0:0 | delegate* unmanaged | Void | UnmanagedCallingConvention | | file://:0:0:0:0 | delegate* unmanaged | Void | UnmanagedCallingConvention | unmanagedCallingConvention parameter @@ -28,6 +29,7 @@ parameter | file://:0:0:0:0 | delegate* stdcall | 2 | file://:0:0:0:0 | `2 | T | | file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | IntPtr! | | file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | IntPtr! | +| file://:0:0:0:0 | delegate* unmanaged | 0 | file://:0:0:0:0 | | MarkCrossReferencesArgs*! | invocation | FunctionPointer.cs:17:21:17:43 | function pointer call | | FunctionPointer.cs:23:13:23:44 | function pointer call | diff --git a/csharp/ql/test/library-tests/csharp9/PrintAst.expected b/csharp/ql/test/library-tests/csharp9/PrintAst.expected index e3b89de2009..459349fb9fc 100644 --- a/csharp/ql/test/library-tests/csharp9/PrintAst.expected +++ b/csharp/ql/test/library-tests/csharp9/PrintAst.expected @@ -1,17 +1,17 @@ AnonymousObjectCreation.cs: # 5| [Class] AnonObj -# 7| 5: [Field] l +# 7| 6: [Field] l # 7| -1: [TypeMention] List # 7| 1: [TypeMention] AnonObj # 7| 1: [CastExpr] (...) ... # 7| 1: [ObjectCreation] object creation of type List -# 9| 6: [Property] Prop1 +# 9| 7: [Property] Prop1 # 9| -1: [TypeMention] int # 9| 3: [Getter] get_Prop1 # 9| 4: [Setter] set_Prop1 #-----| 2: (Parameters) # 9| 0: [Parameter] value -# 11| 7: [Method] M1 +# 11| 8: [Method] M1 # 11| -1: [TypeMention] AnonObj #-----| 2: (Parameters) # 11| 0: [Parameter] t @@ -29,17 +29,17 @@ AnonymousObjectCreation.cs: # 14| 1: [ReturnStmt] return ...; # 14| 0: [CastExpr] (...) ... # 14| 1: [ObjectCreation] object creation of type AnonObj -# 17| 8: [DelegateType] D +# 17| 9: [DelegateType] D #-----| 2: (Parameters) # 17| 0: [Parameter] x # 17| -1: [TypeMention] int -# 19| 9: [Method] M2 +# 19| 10: [Method] M2 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] x # 19| -1: [TypeMention] int # 19| 4: [BlockStmt] {...} -# 21| 10: [Method] GetM +# 21| 11: [Method] GetM # 21| -1: [TypeMention] D # 21| 4: [BlockStmt] {...} # 21| 0: [ReturnStmt] return ...; @@ -47,7 +47,7 @@ AnonymousObjectCreation.cs: # 21| 1: [ExplicitDelegateCreation] delegate creation of type D # 21| 0: [ImplicitDelegateCreation] delegate creation of type D # 21| 0: [MethodAccess] access to method M2 -# 23| 11: [Method] MethodAdd +# 23| 12: [Method] MethodAdd # 23| -1: [TypeMention] Void # 24| 4: [BlockStmt] {...} # 25| 0: [LocalVariableDeclStmt] ... ...; @@ -59,13 +59,13 @@ AnonymousObjectCreation.cs: # 25| 1: [ObjectCreation] object creation of type List BinaryPattern.cs: # 3| [Class] BinaryPattern -# 5| 5: [Property] P1 +# 5| 6: [Property] P1 # 5| -1: [TypeMention] int # 5| 3: [Getter] get_P1 # 5| 4: [Setter] set_P1 #-----| 2: (Parameters) # 5| 0: [Parameter] value -# 7| 6: [Method] M1 +# 7| 7: [Method] M1 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c @@ -75,7 +75,7 @@ BinaryPattern.cs: # 8| 1: [OrPatternExpr] ... or ... # 8| 0: [CharLiteral,ConstantPatternExpr] a # 8| 1: [CharLiteral,ConstantPatternExpr] b -# 9| 7: [Method] M2 +# 9| 8: [Method] M2 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c @@ -91,7 +91,7 @@ BinaryPattern.cs: # 10| 0: [TypeMention] BinaryPattern # 10| 3: [PropertyPatternExpr] { ... } # 10| 0: [ConstantPatternExpr,IntLiteral,LabeledPatternExpr] 1 -# 11| 8: [Method] M3 +# 11| 9: [Method] M3 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c @@ -103,7 +103,7 @@ BinaryPattern.cs: # 12| 0: [TypeMention] object # 12| 1: [VariablePatternExpr] BinaryPattern u # 12| 0: [TypeMention] BinaryPattern -# 14| 9: [Method] M4 +# 14| 10: [Method] M4 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i @@ -122,7 +122,7 @@ BinaryPattern.cs: # 19| 2: [StringLiteralUtf16] "other" CovariantReturn.cs: # 1| [Class] A -# 3| 5: [Method] M1 +# 3| 6: [Method] M1 # 3| -1: [TypeMention] A # 3| 4: [BlockStmt] {...} # 3| 0: [ThrowStmt] throw ...; @@ -130,14 +130,14 @@ CovariantReturn.cs: # 6| [Class] B #-----| 3: (Base types) # 6| 0: [TypeMention] A -# 8| 5: [Method] M1 +# 8| 6: [Method] M1 # 8| -1: [TypeMention] B # 8| 4: [BlockStmt] {...} # 8| 0: [ThrowStmt] throw ...; # 8| 0: [NullLiteral] null Discard.cs: # 3| [Class] Discard -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -227,7 +227,7 @@ ForeachExtension.cs: # 14| 0: [YieldReturnStmt] yield return ...; # 14| 0: [LocalVariableAccess] access to local variable i # 19| [Class] Program -# 21| 5: [Method] Main +# 21| 6: [Method] Main # 21| -1: [TypeMention] Task # 22| 4: [BlockStmt] {...} # 23| 0: [LocalVariableDeclStmt] ... ...; @@ -273,7 +273,7 @@ ForeachExtension.cs: # 37| 1: [IntLiteral] 2 # 37| 2: [IntLiteral] 3 # 38| 2: [BlockStmt] {...} -# 42| 6: [Method] GetAsyncEnumerator +# 42| 7: [Method] GetAsyncEnumerator # 42| -1: [TypeMention] IAsyncEnumerator # 42| 1: [TypeMention] int # 43| 4: [BlockStmt] {...} @@ -289,7 +289,7 @@ ForeachExtension.cs: # 46| 0: [IntLiteral] 1 FunctionPointer.cs: # 3| [Class] FnPointer -# 5| 5: [Class] Program +# 5| 6: [Class] Program # 7| 5: [Field] pointer # 7| -1: [TypeMention] delegate* default # 7| 1: [AddressOfExpr] &... @@ -407,7 +407,7 @@ FunctionPointer.cs: # 48| 0: [TypeMention] A InitOnlyProperty.cs: # 3| [Class] Base -# 5| 5: [Property] Prop0 +# 5| 6: [Property] Prop0 # 5| -1: [TypeMention] int # 5| 3: [Getter] get_Prop0 # 5| 4: [BlockStmt] {...} @@ -421,13 +421,13 @@ InitOnlyProperty.cs: # 5| 0: [AssignExpr] ... = ... # 5| 0: [PropertyCall] access to property Prop1 # 5| 1: [ParameterAccess] access to parameter value -# 6| 6: [Property] Prop1 +# 6| 7: [Property] Prop1 # 6| -1: [TypeMention] int # 6| 3: [Getter] get_Prop1 # 6| 4: [Setter] set_Prop1 #-----| 2: (Parameters) # 6| 0: [Parameter] value -# 7| 7: [Property] Prop2 +# 7| 8: [Property] Prop2 # 7| -1: [TypeMention] int # 7| 3: [Getter] get_Prop2 # 7| 4: [Setter] set_Prop2 @@ -436,13 +436,13 @@ InitOnlyProperty.cs: # 11| [Class] Derived #-----| 3: (Base types) # 11| 0: [TypeMention] Base -# 13| 5: [Property] Prop1 +# 13| 6: [Property] Prop1 # 13| -1: [TypeMention] int # 13| 3: [Getter] get_Prop1 # 13| 4: [Setter] set_Prop1 #-----| 2: (Parameters) # 13| 0: [Parameter] value -# 14| 6: [Property] Prop2 +# 14| 7: [Property] Prop2 # 14| -1: [TypeMention] int # 16| 3: [Getter] get_Prop2 # 16| 4: [BlockStmt] {...} @@ -466,7 +466,7 @@ InitOnlyProperty.cs: # 21| 0: [PropertyCall] access to property Prop0 # 21| 1: [ParameterAccess] access to parameter value # 26| [Class] C1 -# 28| 5: [Method] M1 +# 28| 6: [Method] M1 # 28| -1: [TypeMention] Void # 29| 4: [BlockStmt] {...} # 30| 0: [LocalVariableDeclStmt] ... ...; @@ -490,7 +490,7 @@ IsExternalInit.cs: # 6| 1: [Class] IsExternalInit LambdaModifier.cs: # 4| [Class] Class1 -# 6| 5: [Method] M1 +# 6| 6: [Method] M1 # 6| -1: [TypeMention] Task # 7| 4: [BlockStmt] {...} # 8| 0: [LocalFunctionStmt] m(...) @@ -550,7 +550,7 @@ LambdaModifier.cs: # 15| 0: [TypeMention] Task LocalFunction.cs: # 4| [Class] LocalFunction -# 6| 5: [Method] M1 +# 6| 6: [Method] M1 # 6| -1: [TypeMention] Task # 7| 4: [BlockStmt] {...} # 8| 0: [LocalVariableDeclStmt] ... ...; @@ -578,7 +578,7 @@ LocalFunction.cs: # 14| 0: [IntLiteral] 2 # 16| 3: [LocalFunctionStmt] localExtern(...) # 16| 0: [LocalFunction] localExtern -# 19| 6: [Method] M2 +# 19| 7: [Method] M2 # 19| -1: [TypeMention] Void # 20| 4: [BlockStmt] {...} # 21| 0: [LocalFunctionStmt] dup(...) @@ -610,7 +610,7 @@ LocalFunction.cs: # 27| 1: [IntLiteral] 42 NativeInt.cs: # 3| [Class] NativeInt -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] j @@ -654,7 +654,7 @@ NativeInt.cs: # 12| 0: [TypeAccess] access to type IntPtr # 12| 0: [TypeMention] IntPtr # 12| 1: [IntLiteral] 42 -# 15| 6: [Method] M2 +# 15| 7: [Method] M2 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [LocalVariableDeclStmt] ... ...; @@ -718,7 +718,7 @@ NativeInt.cs: ParenthesizedPattern.cs: # 3| [Class] T # 5| [Class] ParenthesizedPattern -# 7| 5: [Method] M1 +# 7| 6: [Method] M1 # 7| -1: [TypeMention] Void #-----| 2: (Parameters) # 7| 0: [Parameter] o @@ -738,7 +738,7 @@ ParenthesizedPattern.cs: # 13| 0: [VariablePatternExpr] Object p2 # 13| 3: [PropertyPatternExpr] { ... } # 14| 1: [BlockStmt] {...} -# 18| 6: [Method] M2 +# 18| 7: [Method] M2 # 18| -1: [TypeMention] Void #-----| 2: (Parameters) # 18| 0: [Parameter] o @@ -778,23 +778,23 @@ ParenthesizedPattern.cs: # 26| 2: [IntLiteral] 5 Record.cs: # 4| [RecordClass] Person -# 4| 11: [NEOperator] != +# 4| 12: [NEOperator] != #-----| 2: (Parameters) # 4| 0: [Parameter] left # 4| 1: [Parameter] right -# 4| 12: [EQOperator] == +# 4| 13: [EQOperator] == #-----| 2: (Parameters) # 4| 0: [Parameter] left # 4| 1: [Parameter] right -# 4| 13: [Property] EqualityContract +# 4| 14: [Property] EqualityContract # 4| 3: [Getter] get_EqualityContract -# 6| 14: [Property] LastName +# 6| 15: [Property] LastName # 6| -1: [TypeMention] string # 6| 3: [Getter] get_LastName -# 7| 15: [Property] FirstName +# 7| 16: [Property] FirstName # 7| -1: [TypeMention] string # 7| 3: [Getter] get_FirstName -# 9| 16: [InstanceConstructor] Person +# 9| 17: [InstanceConstructor] Person #-----| 2: (Parameters) # 9| 0: [Parameter] first # 9| -1: [TypeMention] string @@ -808,20 +808,20 @@ Record.cs: # 9| 0: [ParameterAccess] access to parameter first # 9| 1: [ParameterAccess] access to parameter last # 12| [RecordClass] Teacher -# 12| 12: [NEOperator] != +# 12| 13: [NEOperator] != #-----| 2: (Parameters) # 12| 0: [Parameter] left # 12| 1: [Parameter] right -# 12| 13: [EQOperator] == +# 12| 14: [EQOperator] == #-----| 2: (Parameters) # 12| 0: [Parameter] left # 12| 1: [Parameter] right -# 12| 14: [Property] EqualityContract +# 12| 15: [Property] EqualityContract # 12| 3: [Getter] get_EqualityContract -# 14| 15: [Property] Subject +# 14| 16: [Property] Subject # 14| -1: [TypeMention] string # 14| 3: [Getter] get_Subject -# 16| 16: [InstanceConstructor] Teacher +# 16| 17: [InstanceConstructor] Teacher #-----| 2: (Parameters) # 16| 0: [Parameter] first # 16| -1: [TypeMention] string @@ -836,20 +836,20 @@ Record.cs: # 17| 0: [PropertyCall] access to property Subject # 17| 1: [ParameterAccess] access to parameter sub # 20| [RecordClass] Student -# 20| 12: [NEOperator] != +# 20| 13: [NEOperator] != #-----| 2: (Parameters) # 20| 0: [Parameter] left # 20| 1: [Parameter] right -# 20| 13: [EQOperator] == +# 20| 14: [EQOperator] == #-----| 2: (Parameters) # 20| 0: [Parameter] left # 20| 1: [Parameter] right -# 20| 14: [Property] EqualityContract +# 20| 15: [Property] EqualityContract # 20| 3: [Getter] get_EqualityContract -# 22| 15: [Property] Level +# 22| 16: [Property] Level # 22| -1: [TypeMention] int # 22| 3: [Getter] get_Level -# 24| 16: [InstanceConstructor] Student +# 24| 17: [InstanceConstructor] Student #-----| 2: (Parameters) # 24| 0: [Parameter] first # 24| -1: [TypeMention] string @@ -864,44 +864,44 @@ Record.cs: # 24| 0: [PropertyCall] access to property Level # 24| 1: [ParameterAccess] access to parameter level # 27| [RecordClass] Person1 -# 27| 12: [NEOperator] != +# 27| 13: [NEOperator] != #-----| 2: (Parameters) # 27| 0: [Parameter] left # 27| 1: [Parameter] right -# 27| 13: [EQOperator] == +# 27| 14: [EQOperator] == #-----| 2: (Parameters) # 27| 0: [Parameter] left # 27| 1: [Parameter] right -# 27| 14: [Property] EqualityContract +# 27| 15: [Property] EqualityContract # 27| 3: [Getter] get_EqualityContract -# 27| 15: [InstanceConstructor,PrimaryConstructor] Person1 +# 27| 16: [InstanceConstructor,PrimaryConstructor] Person1 #-----| 2: (Parameters) # 27| 0: [Parameter] FirstName # 27| -1: [TypeMention] string # 27| 1: [Parameter] LastName # 27| -1: [TypeMention] string -# 27| 16: [Property] FirstName +# 27| 17: [Property] FirstName # 27| 3: [Getter] get_FirstName # 27| 4: [Setter] set_FirstName #-----| 2: (Parameters) # 27| 0: [Parameter] value -# 27| 17: [Property] LastName +# 27| 18: [Property] LastName # 27| 3: [Getter] get_LastName # 27| 4: [Setter] set_LastName #-----| 2: (Parameters) # 27| 0: [Parameter] value # 29| [RecordClass] Teacher1 -# 29| 13: [NEOperator] != +# 29| 14: [NEOperator] != #-----| 2: (Parameters) # 29| 0: [Parameter] left # 29| 1: [Parameter] right -# 29| 14: [EQOperator] == +# 29| 15: [EQOperator] == #-----| 2: (Parameters) # 29| 0: [Parameter] left # 29| 1: [Parameter] right -# 29| 15: [Property] EqualityContract +# 29| 16: [Property] EqualityContract # 29| 3: [Getter] get_EqualityContract -# 29| 16: [InstanceConstructor,PrimaryConstructor] Teacher1 +# 29| 17: [InstanceConstructor,PrimaryConstructor] Teacher1 #-----| 2: (Parameters) # 29| 0: [Parameter] FirstName # 29| -1: [TypeMention] string @@ -912,23 +912,23 @@ Record.cs: # 30| 3: [ConstructorInitializer] call to constructor Person1 # 30| 0: [ParameterAccess] access to parameter FirstName # 30| 1: [ParameterAccess] access to parameter LastName -# 29| 17: [Property] Subject +# 29| 18: [Property] Subject # 29| 3: [Getter] get_Subject # 29| 4: [Setter] set_Subject #-----| 2: (Parameters) # 29| 0: [Parameter] value # 32| [RecordClass] Student1 -# 32| 13: [NEOperator] != +# 32| 14: [NEOperator] != #-----| 2: (Parameters) # 32| 0: [Parameter] left # 32| 1: [Parameter] right -# 32| 14: [EQOperator] == +# 32| 15: [EQOperator] == #-----| 2: (Parameters) # 32| 0: [Parameter] left # 32| 1: [Parameter] right -# 32| 15: [Property] EqualityContract +# 32| 16: [Property] EqualityContract # 32| 3: [Getter] get_EqualityContract -# 32| 16: [InstanceConstructor,PrimaryConstructor] Student1 +# 32| 17: [InstanceConstructor,PrimaryConstructor] Student1 #-----| 2: (Parameters) # 32| 0: [Parameter] FirstName # 32| -1: [TypeMention] string @@ -939,61 +939,61 @@ Record.cs: # 33| 3: [ConstructorInitializer] call to constructor Person1 # 33| 0: [ParameterAccess] access to parameter FirstName # 33| 1: [ParameterAccess] access to parameter LastName -# 32| 17: [Property] Level +# 32| 18: [Property] Level # 32| 3: [Getter] get_Level # 32| 4: [Setter] set_Level #-----| 2: (Parameters) # 32| 0: [Parameter] value # 35| [RecordClass] Pet -# 35| 12: [NEOperator] != +# 35| 13: [NEOperator] != #-----| 2: (Parameters) # 35| 0: [Parameter] left # 35| 1: [Parameter] right -# 35| 13: [EQOperator] == +# 35| 14: [EQOperator] == #-----| 2: (Parameters) # 35| 0: [Parameter] left # 35| 1: [Parameter] right -# 35| 14: [Property] EqualityContract +# 35| 15: [Property] EqualityContract # 35| 3: [Getter] get_EqualityContract -# 35| 15: [InstanceConstructor,PrimaryConstructor] Pet +# 35| 16: [InstanceConstructor,PrimaryConstructor] Pet #-----| 2: (Parameters) # 35| 0: [Parameter] Name # 35| -1: [TypeMention] string -# 35| 16: [Property] Name +# 35| 17: [Property] Name # 35| 3: [Getter] get_Name # 35| 4: [Setter] set_Name #-----| 2: (Parameters) # 35| 0: [Parameter] value -# 37| 17: [Method] ShredTheFurniture +# 37| 18: [Method] ShredTheFurniture # 37| -1: [TypeMention] Void # 38| 4: [MethodCall] call to method WriteLine # 38| -1: [TypeAccess] access to type Console # 38| 0: [TypeMention] Console # 38| 0: [StringLiteralUtf16] "Shredding furniture" # 41| [RecordClass] Dog -# 41| 12: [NEOperator] != +# 41| 13: [NEOperator] != #-----| 2: (Parameters) # 41| 0: [Parameter] left # 41| 1: [Parameter] right -# 41| 13: [EQOperator] == +# 41| 14: [EQOperator] == #-----| 2: (Parameters) # 41| 0: [Parameter] left # 41| 1: [Parameter] right -# 41| 14: [InstanceConstructor,PrimaryConstructor] Dog +# 41| 15: [InstanceConstructor,PrimaryConstructor] Dog #-----| 2: (Parameters) # 41| 0: [Parameter] Name # 41| -1: [TypeMention] string # 41| 3: [ConstructorInitializer] call to constructor Pet # 41| 0: [ParameterAccess] access to parameter Name -# 41| 15: [Property] EqualityContract +# 41| 16: [Property] EqualityContract # 41| 3: [Getter] get_EqualityContract -# 43| 16: [Method] WagTail +# 43| 17: [Method] WagTail # 43| -1: [TypeMention] Void # 44| 4: [MethodCall] call to method WriteLine # 44| -1: [TypeAccess] access to type Console # 44| 0: [TypeMention] Console # 44| 0: [StringLiteralUtf16] "It's tail wagging time" -# 46| 17: [Method] ToString +# 46| 18: [Method] ToString # 46| -1: [TypeMention] string # 47| 4: [BlockStmt] {...} # 48| 0: [LocalVariableDeclStmt] ... ...; @@ -1013,37 +1013,37 @@ Record.cs: # 50| -1: [LocalVariableAccess] access to local variable s # 50| 1: [StringLiteralUtf16] " is a dog" # 54| [RecordClass] R1 -# 54| 12: [NEOperator] != +# 54| 13: [NEOperator] != #-----| 2: (Parameters) # 54| 0: [Parameter] left # 54| 1: [Parameter] right -# 54| 13: [EQOperator] == +# 54| 14: [EQOperator] == #-----| 2: (Parameters) # 54| 0: [Parameter] left # 54| 1: [Parameter] right -# 54| 14: [Property] EqualityContract +# 54| 15: [Property] EqualityContract # 54| 3: [Getter] get_EqualityContract -# 54| 15: [InstanceConstructor,PrimaryConstructor] R1 +# 54| 16: [InstanceConstructor,PrimaryConstructor] R1 #-----| 2: (Parameters) # 54| 0: [Parameter] A # 54| -1: [TypeMention] string -# 54| 16: [Property] A +# 54| 17: [Property] A # 54| 3: [Getter] get_A # 54| 4: [Setter] set_A #-----| 2: (Parameters) # 54| 0: [Parameter] value # 56| [RecordClass] R2 -# 56| 13: [NEOperator] != +# 56| 14: [NEOperator] != #-----| 2: (Parameters) # 56| 0: [Parameter] left # 56| 1: [Parameter] right -# 56| 14: [EQOperator] == +# 56| 15: [EQOperator] == #-----| 2: (Parameters) # 56| 0: [Parameter] left # 56| 1: [Parameter] right -# 56| 15: [Property] EqualityContract +# 56| 16: [Property] EqualityContract # 56| 3: [Getter] get_EqualityContract -# 56| 16: [InstanceConstructor,PrimaryConstructor] R2 +# 56| 17: [InstanceConstructor,PrimaryConstructor] R2 #-----| 2: (Parameters) # 56| 0: [Parameter] A # 56| -1: [TypeMention] string @@ -1051,13 +1051,13 @@ Record.cs: # 56| -1: [TypeMention] string # 56| 3: [ConstructorInitializer] call to constructor R1 # 56| 0: [ParameterAccess] access to parameter A -# 56| 17: [Property] B +# 56| 18: [Property] B # 56| 3: [Getter] get_B # 56| 4: [Setter] set_B #-----| 2: (Parameters) # 56| 0: [Parameter] value # 58| [Class] Record1 -# 60| 5: [Method] M1 +# 60| 6: [Method] M1 # 60| -1: [TypeMention] Void # 61| 4: [BlockStmt] {...} # 62| 0: [LocalVariableDeclStmt] ... ...; @@ -1084,7 +1084,7 @@ Record.cs: # 65| 0: [OperatorCall] call to operator == # 65| 0: [LocalVariableAccess] access to local variable student # 65| 1: [LocalVariableAccess] access to local variable person -# 68| 6: [Method] M2 +# 68| 7: [Method] M2 # 68| -1: [TypeMention] Void # 69| 4: [BlockStmt] {...} # 70| 0: [LocalVariableDeclStmt] ... ...; @@ -1140,7 +1140,7 @@ Record.cs: # 77| 1: [WithExpr] ... with { ... } # 77| 0: [LocalVariableAccess] access to local variable p1 # 77| 1: [ObjectInitializer] { ..., ... } -# 80| 7: [Method] M3 +# 80| 8: [Method] M3 # 80| -1: [TypeMention] Void # 81| 4: [BlockStmt] {...} # 82| 0: [LocalVariableDeclStmt] ... ...; @@ -1168,7 +1168,7 @@ Record.cs: # 84| 1: [StringLiteralUtf16] "C" RelationalPattern.cs: # 3| [Class] RelationalPattern -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] bool #-----| 2: (Parameters) # 5| 0: [Parameter] c @@ -1177,7 +1177,7 @@ RelationalPattern.cs: # 6| 0: [ParameterAccess] access to parameter c # 6| 1: [GEPattern] >= ... # 6| 0: [CharLiteral] a -# 7| 6: [Method] M2 +# 7| 7: [Method] M2 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c @@ -1186,7 +1186,7 @@ RelationalPattern.cs: # 8| 0: [ParameterAccess] access to parameter c # 8| 1: [GTPattern] > ... # 8| 0: [CharLiteral] a -# 9| 7: [Method] M3 +# 9| 8: [Method] M3 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c @@ -1195,7 +1195,7 @@ RelationalPattern.cs: # 10| 0: [ParameterAccess] access to parameter c # 10| 1: [LEPattern] <= ... # 10| 0: [CharLiteral] a -# 11| 8: [Method] M4 +# 11| 9: [Method] M4 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c @@ -1204,7 +1204,7 @@ RelationalPattern.cs: # 12| 0: [ParameterAccess] access to parameter c # 12| 1: [LTPattern] < ... # 12| 0: [CharLiteral] a -# 14| 9: [Method] M5 +# 14| 10: [Method] M5 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i @@ -1225,7 +1225,7 @@ RelationalPattern.cs: # 20| 2: [StringLiteralUtf16] "other" TargetType.cs: # 5| [Class] TargetType -# 7| 5: [Method] M2 +# 7| 6: [Method] M2 # 7| -1: [TypeMention] Void # 8| 4: [BlockStmt] {...} # 9| 0: [LocalVariableDeclStmt] ... ...; @@ -1356,7 +1356,7 @@ TargetType.cs: # 36| 0: [ObjectCreation] object creation of type TargetType # 36| 0: [TypeMention] TargetType # 37| 2: [IntLiteral] 12 -# 40| 6: [ImplicitConversionOperator] implicit conversion +# 40| 7: [ImplicitConversionOperator] implicit conversion # 40| -1: [TypeMention] int #-----| 2: (Parameters) # 40| 0: [Parameter] d @@ -1365,14 +1365,14 @@ TargetType.cs: TypeParameterNullability.cs: # 1| [Interface] I1 # 3| [Class] A2 -# 5| 5: [Method] F1`1 +# 5| 6: [Method] F1`1 # 5| -1: [TypeMention] Void #-----| 1: (Type parameters) # 5| 0: [TypeParameter] T #-----| 2: (Parameters) # 5| 0: [Parameter] t # 5| 4: [BlockStmt] {...} -# 6| 6: [Method] F2`1 +# 6| 7: [Method] F2`1 # 6| -1: [TypeMention] Void #-----| 1: (Type parameters) # 6| 0: [TypeParameter] T @@ -1381,28 +1381,28 @@ TypeParameterNullability.cs: # 6| -1: [TypeMention] T? # 6| 1: [TypeMention] T # 6| 4: [BlockStmt] {...} -# 7| 7: [Method] F3`1 +# 7| 8: [Method] F3`1 # 7| -1: [TypeMention] Void #-----| 1: (Type parameters) # 7| 0: [TypeParameter] T #-----| 2: (Parameters) # 7| 0: [Parameter] t # 7| 4: [BlockStmt] {...} -# 8| 8: [Method] F4`1 +# 8| 9: [Method] F4`1 # 8| -1: [TypeMention] Void #-----| 1: (Type parameters) # 8| 0: [TypeParameter] T #-----| 2: (Parameters) # 8| 0: [Parameter] t # 8| 4: [BlockStmt] {...} -# 9| 9: [Method] F5`1 +# 9| 10: [Method] F5`1 # 9| -1: [TypeMention] Void #-----| 1: (Type parameters) # 9| 0: [TypeParameter] T #-----| 2: (Parameters) # 9| 0: [Parameter] t # 9| 4: [BlockStmt] {...} -# 10| 10: [Method] F6`1 +# 10| 11: [Method] F6`1 # 10| -1: [TypeMention] Void #-----| 1: (Type parameters) # 10| 0: [TypeParameter] T @@ -1414,14 +1414,14 @@ TypeParameterNullability.cs: # 13| [Class] B2 #-----| 3: (Base types) # 13| 0: [TypeMention] A2 -# 15| 5: [Method] F1`1 +# 15| 6: [Method] F1`1 # 15| -1: [TypeMention] Void #-----| 1: (Type parameters) # 15| 0: [TypeParameter] T #-----| 2: (Parameters) # 15| 0: [Parameter] t # 15| 4: [BlockStmt] {...} -# 16| 6: [Method] F2`1 +# 16| 7: [Method] F2`1 # 16| -1: [TypeMention] Void #-----| 1: (Type parameters) # 16| 0: [TypeParameter] T @@ -1430,21 +1430,21 @@ TypeParameterNullability.cs: # 16| -1: [TypeMention] T? # 16| 1: [TypeMention] T # 16| 4: [BlockStmt] {...} -# 17| 7: [Method] F3`1 +# 17| 8: [Method] F3`1 # 17| -1: [TypeMention] Void #-----| 1: (Type parameters) # 17| 0: [TypeParameter] T #-----| 2: (Parameters) # 17| 0: [Parameter] t # 17| 4: [BlockStmt] {...} -# 18| 8: [Method] F4`1 +# 18| 9: [Method] F4`1 # 18| -1: [TypeMention] Void #-----| 1: (Type parameters) # 18| 0: [TypeParameter] T #-----| 2: (Parameters) # 18| 0: [Parameter] t # 18| 4: [BlockStmt] {...} -# 19| 9: [Method] F6`1 +# 19| 10: [Method] F6`1 # 19| -1: [TypeMention] Void #-----| 1: (Type parameters) # 19| 0: [TypeParameter] T @@ -1456,7 +1456,7 @@ TypeParameterNullability.cs: # 22| [Class] B3 #-----| 3: (Base types) # 22| 0: [TypeMention] A2 -# 24| 5: [Method] F2`1 +# 24| 6: [Method] F2`1 # 24| -1: [TypeMention] Void #-----| 1: (Type parameters) # 24| 0: [TypeParameter] T @@ -1467,7 +1467,7 @@ TypeParameterNullability.cs: # 24| 4: [BlockStmt] {...} TypePattern.cs: # 3| [Class] TypePattern -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] object #-----| 2: (Parameters) # 5| 0: [Parameter] o1 @@ -1516,13 +1516,13 @@ TypePattern.cs: # 14| 2: [LocalVariableAccess] access to local variable o UnaryPattern.cs: # 3| [Class] UnaryPattern -# 5| 5: [Property] P1 +# 5| 6: [Property] P1 # 5| -1: [TypeMention] int # 5| 3: [Getter] get_P1 # 5| 4: [Setter] set_P1 #-----| 2: (Parameters) # 5| 0: [Parameter] value -# 7| 6: [Method] M1 +# 7| 7: [Method] M1 # 7| -1: [TypeMention] bool #-----| 2: (Parameters) # 7| 0: [Parameter] c @@ -1531,7 +1531,7 @@ UnaryPattern.cs: # 8| 0: [ParameterAccess] access to parameter c # 8| 1: [NotPatternExpr] not ... # 8| 0: [CharLiteral,ConstantPatternExpr] a -# 9| 7: [Method] M2 +# 9| 8: [Method] M2 # 9| -1: [TypeMention] bool #-----| 2: (Parameters) # 9| 0: [Parameter] c @@ -1540,7 +1540,7 @@ UnaryPattern.cs: # 10| 0: [ParameterAccess] access to parameter c # 10| 1: [NotPatternExpr] not ... # 10| 0: [ConstantPatternExpr,NullLiteral] null -# 11| 8: [Method] M3 +# 11| 9: [Method] M3 # 11| -1: [TypeMention] bool #-----| 2: (Parameters) # 11| 0: [Parameter] c @@ -1554,7 +1554,7 @@ UnaryPattern.cs: # 12| 0: [TypeMention] UnaryPattern # 12| 3: [PropertyPatternExpr] { ... } # 12| 0: [ConstantPatternExpr,IntLiteral,LabeledPatternExpr] 1 -# 14| 9: [Method] M4 +# 14| 10: [Method] M4 # 14| -1: [TypeMention] string #-----| 2: (Parameters) # 14| 0: [Parameter] i diff --git a/csharp/ql/test/library-tests/csharp9/nativeInt.expected b/csharp/ql/test/library-tests/csharp9/nativeInt.expected index 2c63241e1fe..7809e4f9487 100644 --- a/csharp/ql/test/library-tests/csharp9/nativeInt.expected +++ b/csharp/ql/test/library-tests/csharp9/nativeInt.expected @@ -1,4 +1,6 @@ | NativeInt.cs:3:14:3:22 | call to constructor Object | Object | +| NativeInt.cs:3:14:3:22 | call to method | Void | +| NativeInt.cs:3:14:3:22 | this access | NativeInt | | NativeInt.cs:7:14:7:14 | access to local variable x | IntPtr | | NativeInt.cs:7:14:7:18 | IntPtr x = ... | IntPtr | | NativeInt.cs:7:18:7:18 | (...) ... | IntPtr | diff --git a/csharp/ql/test/library-tests/csharp9/record.expected b/csharp/ql/test/library-tests/csharp9/record.expected index 9b6b5c00571..b34815c4f1a 100644 --- a/csharp/ql/test/library-tests/csharp9/record.expected +++ b/csharp/ql/test/library-tests/csharp9/record.expected @@ -12,6 +12,7 @@ records members | Record.cs:4:1:10:1 | Person | Person.!=(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:4:1:10:1 | Person | Person.$() | no location | +| Record.cs:4:1:10:1 | Person | Person.() | no location | | Record.cs:4:1:10:1 | Person | Person.==(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:4:1:10:1 | Person | Person.EqualityContract | Record.cs:4:15:4:20 | | Record.cs:4:1:10:1 | Person | Person.Equals(Person) | no location | @@ -30,6 +31,7 @@ members | Record.cs:4:1:10:1 | Person | System.Object.ReferenceEquals(object, object) | no location | | Record.cs:4:1:10:1 | Person | System.Object.~Object() | no location | | Record.cs:12:1:18:1 | Teacher | Person.!=(Person, Person) | Record.cs:4:15:4:20 | +| Record.cs:12:1:18:1 | Teacher | Person.() | no location | | Record.cs:12:1:18:1 | Teacher | Person.==(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:12:1:18:1 | Teacher | Person.FirstName | Record.cs:7:19:7:27 | | Record.cs:12:1:18:1 | Teacher | Person.LastName | Record.cs:6:19:6:26 | @@ -43,6 +45,7 @@ members | Record.cs:12:1:18:1 | Teacher | System.Object.~Object() | no location | | Record.cs:12:1:18:1 | Teacher | Teacher.!=(Teacher, Teacher) | Record.cs:12:15:12:21 | | Record.cs:12:1:18:1 | Teacher | Teacher.$() | no location | +| Record.cs:12:1:18:1 | Teacher | Teacher.() | no location | | Record.cs:12:1:18:1 | Teacher | Teacher.==(Teacher, Teacher) | Record.cs:12:15:12:21 | | Record.cs:12:1:18:1 | Teacher | Teacher.EqualityContract | Record.cs:12:15:12:21 | | Record.cs:12:1:18:1 | Teacher | Teacher.Equals(Person) | no location | @@ -55,6 +58,7 @@ members | Record.cs:12:1:18:1 | Teacher | Teacher.Teacher(string, string, string) | Record.cs:16:12:16:18 | | Record.cs:12:1:18:1 | Teacher | Teacher.ToString() | no location | | Record.cs:20:1:25:1 | Student | Person.!=(Person, Person) | Record.cs:4:15:4:20 | +| Record.cs:20:1:25:1 | Student | Person.() | no location | | Record.cs:20:1:25:1 | Student | Person.==(Person, Person) | Record.cs:4:15:4:20 | | Record.cs:20:1:25:1 | Student | Person.FirstName | Record.cs:7:19:7:27 | | Record.cs:20:1:25:1 | Student | Person.LastName | Record.cs:6:19:6:26 | @@ -62,6 +66,7 @@ members | Record.cs:20:1:25:1 | Student | Person.Person(string, string) | Record.cs:9:12:9:17 | | Record.cs:20:1:25:1 | Student | Student.!=(Student, Student) | Record.cs:20:22:20:28 | | Record.cs:20:1:25:1 | Student | Student.$() | no location | +| Record.cs:20:1:25:1 | Student | Student.() | no location | | Record.cs:20:1:25:1 | Student | Student.==(Student, Student) | Record.cs:20:22:20:28 | | Record.cs:20:1:25:1 | Student | Student.EqualityContract | Record.cs:20:22:20:28 | | Record.cs:20:1:25:1 | Student | Student.Equals(Person) | no location | @@ -81,6 +86,7 @@ members | Record.cs:20:1:25:1 | Student | System.Object.~Object() | no location | | Record.cs:27:1:27:57 | Person1 | Person1.!=(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:27:1:27:57 | Person1 | Person1.$() | no location | +| Record.cs:27:1:27:57 | Person1 | Person1.() | no location | | Record.cs:27:1:27:57 | Person1 | Person1.==(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:27:1:27:57 | Person1 | Person1.Deconstruct(out string, out string) | no location | | Record.cs:27:1:27:57 | Person1 | Person1.EqualityContract | Record.cs:27:15:27:21 | @@ -100,6 +106,7 @@ members | Record.cs:27:1:27:57 | Person1 | System.Object.ReferenceEquals(object, object) | no location | | Record.cs:27:1:27:57 | Person1 | System.Object.~Object() | no location | | Record.cs:29:1:30:35 | Teacher1 | Person1.!=(Person1, Person1) | Record.cs:27:15:27:21 | +| Record.cs:29:1:30:35 | Teacher1 | Person1.() | no location | | Record.cs:29:1:30:35 | Teacher1 | Person1.==(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:29:1:30:35 | Teacher1 | Person1.Deconstruct(out string, out string) | no location | | Record.cs:29:1:30:35 | Teacher1 | Person1.FirstName | Record.cs:27:30:27:38 | @@ -114,6 +121,7 @@ members | Record.cs:29:1:30:35 | Teacher1 | System.Object.~Object() | no location | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.!=(Teacher1, Teacher1) | Record.cs:29:15:29:22 | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.$() | no location | +| Record.cs:29:1:30:35 | Teacher1 | Teacher1.() | no location | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.==(Teacher1, Teacher1) | Record.cs:29:15:29:22 | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.Deconstruct(out string, out string, out string) | no location | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.EqualityContract | Record.cs:29:15:29:22 | @@ -127,6 +135,7 @@ members | Record.cs:29:1:30:35 | Teacher1 | Teacher1.Teacher1(string, string, string) | Record.cs:29:15:29:22 | | Record.cs:29:1:30:35 | Teacher1 | Teacher1.ToString() | no location | | Record.cs:32:1:33:35 | Student1 | Person1.!=(Person1, Person1) | Record.cs:27:15:27:21 | +| Record.cs:32:1:33:35 | Student1 | Person1.() | no location | | Record.cs:32:1:33:35 | Student1 | Person1.==(Person1, Person1) | Record.cs:27:15:27:21 | | Record.cs:32:1:33:35 | Student1 | Person1.Deconstruct(out string, out string) | no location | | Record.cs:32:1:33:35 | Student1 | Person1.FirstName | Record.cs:27:30:27:38 | @@ -135,6 +144,7 @@ members | Record.cs:32:1:33:35 | Student1 | Person1.Person1(string, string) | Record.cs:27:15:27:21 | | Record.cs:32:1:33:35 | Student1 | Student1.!=(Student1, Student1) | Record.cs:32:22:32:29 | | Record.cs:32:1:33:35 | Student1 | Student1.$() | no location | +| Record.cs:32:1:33:35 | Student1 | Student1.() | no location | | Record.cs:32:1:33:35 | Student1 | Student1.==(Student1, Student1) | Record.cs:32:22:32:29 | | Record.cs:32:1:33:35 | Student1 | Student1.Deconstruct(out string, out string, out int) | no location | | Record.cs:32:1:33:35 | Student1 | Student1.EqualityContract | Record.cs:32:22:32:29 | @@ -155,6 +165,7 @@ members | Record.cs:32:1:33:35 | Student1 | System.Object.~Object() | no location | | Record.cs:35:1:39:1 | Pet | Pet.!=(Pet, Pet) | Record.cs:35:15:35:17 | | Record.cs:35:1:39:1 | Pet | Pet.$() | no location | +| Record.cs:35:1:39:1 | Pet | Pet.() | no location | | Record.cs:35:1:39:1 | Pet | Pet.==(Pet, Pet) | Record.cs:35:15:35:17 | | Record.cs:35:1:39:1 | Pet | Pet.Deconstruct(out string) | no location | | Record.cs:35:1:39:1 | Pet | Pet.EqualityContract | Record.cs:35:15:35:17 | @@ -175,6 +186,7 @@ members | Record.cs:35:1:39:1 | Pet | System.Object.~Object() | no location | | Record.cs:41:1:52:1 | Dog | Dog.!=(Dog, Dog) | Record.cs:41:15:41:17 | | Record.cs:41:1:52:1 | Dog | Dog.$() | no location | +| Record.cs:41:1:52:1 | Dog | Dog.() | no location | | Record.cs:41:1:52:1 | Dog | Dog.==(Dog, Dog) | Record.cs:41:15:41:17 | | Record.cs:41:1:52:1 | Dog | Dog.Deconstruct(out string) | no location | | Record.cs:41:1:52:1 | Dog | Dog.Dog(Dog) | no location | @@ -188,6 +200,7 @@ members | Record.cs:41:1:52:1 | Dog | Dog.ToString() | Record.cs:46:28:46:35 | | Record.cs:41:1:52:1 | Dog | Dog.WagTail() | Record.cs:43:17:43:23 | | Record.cs:41:1:52:1 | Dog | Pet.!=(Pet, Pet) | Record.cs:35:15:35:17 | +| Record.cs:41:1:52:1 | Dog | Pet.() | no location | | Record.cs:41:1:52:1 | Dog | Pet.==(Pet, Pet) | Record.cs:35:15:35:17 | | Record.cs:41:1:52:1 | Dog | Pet.Deconstruct(out string) | no location | | Record.cs:41:1:52:1 | Dog | Pet.Name | Record.cs:35:26:35:29 | @@ -202,6 +215,7 @@ members | Record.cs:41:1:52:1 | Dog | System.Object.~Object() | no location | | Record.cs:54:1:54:39 | R1 | R1.!=(R1, R1) | Record.cs:54:24:54:25 | | Record.cs:54:1:54:39 | R1 | R1.$() | no location | +| Record.cs:54:1:54:39 | R1 | R1.() | no location | | Record.cs:54:1:54:39 | R1 | R1.==(R1, R1) | Record.cs:54:24:54:25 | | Record.cs:54:1:54:39 | R1 | R1.A | Record.cs:54:34:54:34 | | Record.cs:54:1:54:39 | R1 | R1.Deconstruct(out string) | no location | @@ -220,6 +234,7 @@ members | Record.cs:54:1:54:39 | R1 | System.Object.ReferenceEquals(object, object) | no location | | Record.cs:54:1:54:39 | R1 | System.Object.~Object() | no location | | Record.cs:56:1:56:48 | R2 | R1.!=(R1, R1) | Record.cs:54:24:54:25 | +| Record.cs:56:1:56:48 | R2 | R1.() | no location | | Record.cs:56:1:56:48 | R2 | R1.==(R1, R1) | Record.cs:54:24:54:25 | | Record.cs:56:1:56:48 | R2 | R1.A | Record.cs:54:34:54:34 | | Record.cs:56:1:56:48 | R2 | R1.Deconstruct(out string) | no location | @@ -227,6 +242,7 @@ members | Record.cs:56:1:56:48 | R2 | R1.R1(string) | Record.cs:54:24:54:25 | | Record.cs:56:1:56:48 | R2 | R2.!=(R2, R2) | Record.cs:56:15:56:16 | | Record.cs:56:1:56:48 | R2 | R2.$() | no location | +| Record.cs:56:1:56:48 | R2 | R2.() | no location | | Record.cs:56:1:56:48 | R2 | R2.==(R2, R2) | Record.cs:56:15:56:16 | | Record.cs:56:1:56:48 | R2 | R2.B | Record.cs:56:35:56:35 | | Record.cs:56:1:56:48 | R2 | R2.Deconstruct(out string, out string) | no location | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected new file mode 100644 index 00000000000..373e8938b91 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.expected @@ -0,0 +1,840 @@ +models +| 1 | Summary: System.Collections.Generic; Dictionary; false; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 2 | Summary: System.Collections.Generic; Dictionary; false; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 3 | Summary: System.Collections.Generic; ICollection; true; Add; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 4 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 5 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 6 | Summary: System.Collections.Generic; IDictionary; true; get_Item; (TKey); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue; value; manual | +| 7 | Summary: System.Collections.Generic; IDictionary; true; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 8 | Summary: System.Collections.Generic; IDictionary; true; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 9 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 10 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 11 | Summary: System.Collections.Generic; IList; true; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 12 | Summary: System.Collections.Generic; IList; true; set_Item; (System.Int32,T); ; Argument[1]; Argument[this].Element; value; manual | +| 13 | Summary: System.Collections.Generic; KeyValuePair; false; KeyValuePair; (TKey,TValue); ; Argument[0]; Argument[this].Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 14 | Summary: System.Collections.Generic; List+Enumerator; false; get_Current; (); ; Argument[this].Property[System.Collections.Generic.List`1+Enumerator.Current]; ReturnValue; value; dfc-generated | +| 15 | Summary: System.Collections.Generic; List; false; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.Generic.List`1+Enumerator.Current]; value; manual | +| 16 | Summary: System.Collections; IEnumerable; true; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.IEnumerator.Current]; value; manual | +| 17 | Summary: System.Linq; Enumerable; false; First; (System.Collections.Generic.IEnumerable); ; Argument[0].Element; ReturnValue; value; manual | +| 18 | Summary: System.Linq; Enumerable; false; Select; (System.Collections.Generic.IEnumerable,System.Func); ; Argument[0].Element; Argument[1].Parameter[0]; value; manual | +| 19 | Summary: System; ReadOnlySpan; false; ReadOnlySpan; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 20 | Summary: System; ReadOnlySpan; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 21 | Summary: System; Span; false; CopyTo; (System.Span); ; Argument[this].Element; Argument[0].Element; value; manual | +| 22 | Summary: System; Span; false; Fill; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 23 | Summary: System; Span; false; Span; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 24 | Summary: System; Span; false; Span; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 25 | Summary: System; Span; false; ToArray; (); ; Argument[this].Element; ReturnValue.Element; value; manual | +| 26 | Summary: System; Span; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +edges +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:16:56:16:61 | access to array element | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:81 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:7 | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:22:73:22:89 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | provenance | MaD:11 | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | provenance | MaD:6 | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | provenance | MaD:17 | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | provenance | | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:2 | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:8 | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | provenance | MaD:17 | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:7 | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | provenance | MaD:17 | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | provenance | MaD:17 | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:95 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | CollectionFlow.cs:47:27:47:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:13:46:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:19 | access to array element | provenance | | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:50:14:50:23 | call to method First | provenance | | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | CollectionFlow.cs:65:53:65:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:13:64:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | CollectionFlow.cs:66:14:66:20 | access to array element | provenance | | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:68:14:68:24 | call to method First | provenance | | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | CollectionFlow.cs:83:54:83:54 | access to local variable a : A | provenance | | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:13:82:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | CollectionFlow.cs:84:14:84:21 | access to array element | provenance | | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:86:14:86:23 | call to method Last | provenance | | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | CollectionFlow.cs:93:18:93:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:13:91:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:19 | access to array element | provenance | | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:96:14:96:23 | call to method First | provenance | | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | CollectionFlow.cs:113:19:113:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:13:111:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:20 | access to array element | provenance | | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:116:14:116:22 | call to method Last | provenance | | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | CollectionFlow.cs:123:19:123:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:13:121:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | provenance | MaD:12 | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | CollectionFlow.cs:141:36:141:36 | access to local variable a : A | provenance | | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:13:140:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | CollectionFlow.cs:159:18:159:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:13:157:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | CollectionFlow.cs:178:19:178:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:13:176:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | provenance | MaD:10 | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:20 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | provenance | MaD:6 | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | provenance | MaD:17 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:8 | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | CollectionFlow.cs:200:52:200:52 | access to local variable a : A | provenance | | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:13:199:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:5 | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:20 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | provenance | MaD:6 | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | provenance | MaD:17 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:8 | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | CollectionFlow.cs:221:53:221:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:13:220:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:10 | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:20 | access to indexer | provenance | MaD:6 | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | provenance | MaD:6 | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | provenance | MaD:17 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:8 | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | CollectionFlow.cs:243:49:243:49 | access to local variable a : A | provenance | | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:13:242:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:4 | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:244:14:244:30 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:7 | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | provenance | MaD:17 | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | CollectionFlow.cs:262:48:262:48 | access to local variable a : A | provenance | | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:13:261:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:9 | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:263:14:263:30 | call to method First | provenance | MaD:17 | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:7 | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | provenance | MaD:17 | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | CollectionFlow.cs:281:27:281:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:13:280:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | provenance | | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | CollectionFlow.cs:296:27:296:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:13:295:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | provenance | MaD:16 | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:35 | access to property Current | provenance | | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | CollectionFlow.cs:314:18:314:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:13:312:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:15 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:15 | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:14 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:14 | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | CollectionFlow.cs:333:43:333:43 | access to local variable a : A | provenance | | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:13:331:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | provenance | | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | provenance | MaD:3 | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | provenance | MaD:13 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | provenance | MaD:18 | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:24 | access to property Key | provenance | | +| CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:55:353:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | provenance | | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | provenance | | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | CollectionFlow.cs:359:23:359:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:13:357:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:19 | access to array element | provenance | | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:362:14:362:23 | call to method First | provenance | | +| CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:55:375:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | provenance | | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | CollectionFlow.cs:381:23:381:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:13:379:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | MaD:11 | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | CollectionFlow.cs:40:49:40:52 | args : null [element] : A | provenance | | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | CollectionFlow.cs:441:20:441:20 | access to local variable a : A | provenance | | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:13:439:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:21 | access to array element | provenance | | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | CollectionFlow.cs:461:22:461:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:13:460:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:21 | access to array element | provenance | | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | CollectionFlow.cs:468:22:468:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:13:467:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | provenance | | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:17 | access to indexer | provenance | MaD:11 | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | CollectionFlow.cs:481:21:481:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:13:480:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:21 | access to array element | provenance | | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | CollectionFlow.cs:521:40:521:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:13:520:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | provenance | MaD:23 | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | MaD:26 | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | CollectionFlow.cs:528:40:528:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:13:527:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | provenance | MaD:23 | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | provenance | MaD:25 | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:19 | access to array element | provenance | | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | CollectionFlow.cs:536:21:536:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:13:535:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | provenance | MaD:22 | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:22 | access to indexer | provenance | MaD:26 | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | provenance | MaD:24 | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | provenance | MaD:21 | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:22 | access to indexer | provenance | MaD:26 | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | CollectionFlow.cs:550:60:550:60 | access to local variable a : A | provenance | | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:13:549:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | provenance | MaD:19 | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:20 | +nodes +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:14:52:14:56 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:61 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:18:63:18:69 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:81 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:22:73:22:89 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:28:52:28:58 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:73 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | semmle.label | call to method First> : KeyValuePair [property Value] : A | +| CollectionFlow.cs:32:68:32:85 | access to property Value : A | semmle.label | access to property Value : A | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | semmle.label | access to property Values : ICollection [element] : A | +| CollectionFlow.cs:34:69:34:87 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:36:67:36:83 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | semmle.label | call to method First> : KeyValuePair [property Key] : A | +| CollectionFlow.cs:38:66:38:81 | access to property Key : A | semmle.label | access to property Key : A | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | semmle.label | args : A[] [element] : A | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | semmle.label | args : null [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | semmle.label | access to parameter args : A[] [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | semmle.label | access to parameter args : null [element] : A | +| CollectionFlow.cs:40:63:40:69 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | semmle.label | args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | semmle.label | access to parameter args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:95 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:48:14:48:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:50:14:50:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:66:14:66:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:68:14:68:24 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:84:14:84:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:86:14:86:23 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:94:14:94:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:96:14:96:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:114:14:114:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:116:14:116:22 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:124:14:124:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:126:14:126:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | semmle.label | object creation of type List : List [element] : A | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:142:14:142:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:144:14:144:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:160:14:160:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:162:14:162:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | semmle.label | [post] access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:179:14:179:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:201:14:201:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:222:14:222:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:244:14:244:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:263:14:263:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:283:18:283:18 | access to local variable x | semmle.label | access to local variable x | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | semmle.label | call to method GetEnumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | semmle.label | [post] access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | semmle.label | object creation of type KeyValuePair : KeyValuePair [property Key] : A | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | semmle.label | access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | semmle.label | kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | semmle.label | access to parameter kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:24 | access to property Key | semmle.label | access to property Key | +| CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | semmle.label | array [Return] : A[] [element] : A | +| CollectionFlow.cs:353:32:353:38 | element : A | semmle.label | element : A | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | semmle.label | [post] access to parameter array : A[] [element] : A | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:360:14:360:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:14:362:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | semmle.label | list [Return] : List [element] : A | +| CollectionFlow.cs:375:34:375:40 | element : A | semmle.label | element : A | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | semmle.label | [post] access to parameter list : List [element] : A | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:382:14:382:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:384:14:384:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | semmle.label | [...] : IEnumerable [element] : A | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | semmle.label | [post] access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | semmle.label | access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:442:14:442:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:462:14:462:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | semmle.label | [...] : List [element] : A | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:469:14:469:17 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | semmle.label | access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | semmle.label | .. access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:483:14:483:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:522:14:522:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | semmle.label | call to method ToArray : T[] [element] : A | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:530:14:530:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:537:14:537:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:544:14:544:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | semmle.label | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:551:14:551:20 | access to indexer | semmle.label | access to indexer | +subpaths +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:50:14:50:23 | call to method First | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:68:14:68:24 | call to method First | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:86:14:86:23 | call to method Last | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:96:14:96:23 | call to method First | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:116:14:116:22 | call to method Last | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:362:14:362:23 | call to method First | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +#select +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:48:14:48:19 | access to array element | $@ | CollectionFlow.cs:48:14:48:19 | access to array element | access to array element | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:50:14:50:23 | call to method First | $@ | CollectionFlow.cs:50:14:50:23 | call to method First | call to method First | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:66:14:66:20 | access to array element | $@ | CollectionFlow.cs:66:14:66:20 | access to array element | access to array element | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:68:14:68:24 | call to method First | $@ | CollectionFlow.cs:68:14:68:24 | call to method First | call to method First | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:84:14:84:21 | access to array element | $@ | CollectionFlow.cs:84:14:84:21 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:86:14:86:23 | call to method Last | $@ | CollectionFlow.cs:86:14:86:23 | call to method Last | call to method Last | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:94:14:94:19 | access to array element | $@ | CollectionFlow.cs:94:14:94:19 | access to array element | access to array element | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:96:14:96:23 | call to method First | $@ | CollectionFlow.cs:96:14:96:23 | call to method First | call to method First | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:114:14:114:20 | access to array element | $@ | CollectionFlow.cs:114:14:114:20 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:116:14:116:22 | call to method Last | $@ | CollectionFlow.cs:116:14:116:22 | call to method Last | call to method Last | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:124:14:124:20 | access to indexer | $@ | CollectionFlow.cs:124:14:124:20 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | $@ | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:142:14:142:20 | access to indexer | $@ | CollectionFlow.cs:142:14:142:20 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | $@ | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:160:14:160:20 | access to indexer | $@ | CollectionFlow.cs:160:14:160:20 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | $@ | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:179:14:179:20 | access to indexer | $@ | CollectionFlow.cs:179:14:179:20 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:201:14:201:20 | access to indexer | $@ | CollectionFlow.cs:201:14:201:20 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:222:14:222:20 | access to indexer | $@ | CollectionFlow.cs:222:14:222:20 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:244:14:244:30 | call to method First | $@ | CollectionFlow.cs:244:14:244:30 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:263:14:263:30 | call to method First | $@ | CollectionFlow.cs:263:14:263:30 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | $@ | CollectionFlow.cs:283:18:283:18 | access to local variable x | access to local variable x | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:299:18:299:35 | access to property Current | $@ | CollectionFlow.cs:299:18:299:35 | access to property Current | access to property Current | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:317:18:317:35 | access to property Current | $@ | CollectionFlow.cs:317:18:317:35 | access to property Current | access to property Current | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:360:14:360:19 | access to array element | $@ | CollectionFlow.cs:360:14:360:19 | access to array element | access to array element | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:362:14:362:23 | call to method First | $@ | CollectionFlow.cs:362:14:362:23 | call to method First | call to method First | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:382:14:382:20 | access to indexer | $@ | CollectionFlow.cs:382:14:382:20 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | $@ | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:442:14:442:21 | access to array element | $@ | CollectionFlow.cs:442:14:442:21 | access to array element | access to array element | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:462:14:462:21 | access to array element | $@ | CollectionFlow.cs:462:14:462:21 | access to array element | access to array element | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:469:14:469:17 | access to indexer | $@ | CollectionFlow.cs:469:14:469:17 | access to indexer | access to indexer | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:483:14:483:21 | access to array element | $@ | CollectionFlow.cs:483:14:483:21 | access to array element | access to array element | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:522:14:522:20 | access to indexer | $@ | CollectionFlow.cs:522:14:522:20 | access to indexer | access to indexer | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:530:14:530:19 | access to array element | $@ | CollectionFlow.cs:530:14:530:19 | access to array element | access to array element | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:537:14:537:22 | access to indexer | $@ | CollectionFlow.cs:537:14:537:22 | access to indexer | access to indexer | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.ql similarity index 50% rename from csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql rename to csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.ql index 67553b5cbc9..d167fcdb638 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionDataFlow.ql @@ -2,20 +2,9 @@ * @kind path-problem */ -import csharp +import CollectionFlowCommon import utils.test.ProvenancePathGraph::ShowProvenance -module ArrayFlowConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ObjectCreation } - - predicate isSink(DataFlow::Node sink) { - exists(MethodCall mc | - mc.getTarget().hasUndecoratedName("Sink") and - mc.getAnArgument() = sink.asExpr() - ) - } -} - module ArrayFlow = DataFlow::Global; from ArrayFlow::PathNode source, ArrayFlow::PathNode sink diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs index c0a7900461f..c95ab58bdb8 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.cs @@ -550,4 +550,10 @@ public class CollectionFlow ReadOnlySpan span = new ReadOnlySpan(new[] { a }); Sink(span[0]); // flow } + + public void ImplicitMapValueRead(Dictionary dict) { + var a = new A(); + dict[0] = a; + Sink(dict); // taint flow + } } diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll new file mode 100644 index 00000000000..bfbd22773e1 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlowCommon.qll @@ -0,0 +1,12 @@ +import csharp + +module ArrayFlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ObjectCreation } + + predicate isSink(DataFlow::Node sink) { + exists(MethodCall mc | + mc.getTarget().hasUndecoratedName("Sink") and + mc.getAnArgument() = sink.asExpr() + ) + } +} diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected new file mode 100644 index 00000000000..c54b7f84e6a --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.expected @@ -0,0 +1,1384 @@ +models +| 1 | Summary: System.Collections.Generic; Dictionary; false; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 2 | Summary: System.Collections.Generic; Dictionary; false; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 3 | Summary: System.Collections.Generic; ICollection; true; Add; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 4 | Summary: System.Collections.Generic; ICollection; true; Clear; (); ; Argument[this].WithoutElement; Argument[this]; value; manual | +| 5 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 6 | Summary: System.Collections.Generic; IDictionary; true; Add; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 7 | Summary: System.Collections.Generic; IDictionary; true; get_Item; (TKey); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue; value; manual | +| 8 | Summary: System.Collections.Generic; IDictionary; true; get_Keys; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; ReturnValue.Element; value; manual | +| 9 | Summary: System.Collections.Generic; IDictionary; true; get_Values; (); ; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; ReturnValue.Element; value; manual | +| 10 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[0]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 11 | Summary: System.Collections.Generic; IDictionary; true; set_Item; (TKey,TValue); ; Argument[1]; Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value]; value; manual | +| 12 | Summary: System.Collections.Generic; IList; true; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 13 | Summary: System.Collections.Generic; IList; true; set_Item; (System.Int32,T); ; Argument[1]; Argument[this].Element; value; manual | +| 14 | Summary: System.Collections.Generic; KeyValuePair; false; KeyValuePair; (TKey,TValue); ; Argument[0]; Argument[this].Property[System.Collections.Generic.KeyValuePair`2.Key]; value; manual | +| 15 | Summary: System.Collections.Generic; KeyValuePair; false; get_Key; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 16 | Summary: System.Collections.Generic; KeyValuePair; false; get_Value; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 17 | Summary: System.Collections.Generic; List+Enumerator; false; get_Current; (); ; Argument[this].Property[System.Collections.Generic.List`1+Enumerator.Current]; ReturnValue; value; dfc-generated | +| 18 | Summary: System.Collections.Generic; List; false; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.Generic.List`1+Enumerator.Current]; value; manual | +| 19 | Summary: System.Collections; IEnumerable; true; GetEnumerator; (); ; Argument[this].Element; ReturnValue.Property[System.Collections.IEnumerator.Current]; value; manual | +| 20 | Summary: System.Collections; IList; true; Clear; (); ; Argument[this].WithoutElement; Argument[this]; value; manual | +| 21 | Summary: System.Linq; Enumerable; false; First; (System.Collections.Generic.IEnumerable); ; Argument[0].Element; ReturnValue; value; manual | +| 22 | Summary: System.Linq; Enumerable; false; Select; (System.Collections.Generic.IEnumerable,System.Func); ; Argument[0].Element; Argument[1].Parameter[0]; value; manual | +| 23 | Summary: System; ReadOnlySpan; false; ReadOnlySpan; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 24 | Summary: System; ReadOnlySpan; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +| 25 | Summary: System; Span; false; CopyTo; (System.Span); ; Argument[this].Element; Argument[0].Element; value; manual | +| 26 | Summary: System; Span; false; Fill; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 27 | Summary: System; Span; false; Span; (T); ; Argument[0]; Argument[this].Element; value; manual | +| 28 | Summary: System; Span; false; Span; (T[]); ; Argument[0].Element; Argument[this].Element; value; manual | +| 29 | Summary: System; Span; false; ToArray; (); ; Argument[this].Element; ReturnValue.Element; value; manual | +| 30 | Summary: System; Span; false; get_Item; (System.Int32); ; Argument[this].Element; ReturnValue; value; manual | +edges +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | CollectionFlow.cs:14:52:14:56 | access to array element | provenance | | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:16:56:16:61 | access to array element | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List | CollectionFlow.cs:18:63:18:66 | access to parameter list : List | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | CollectionFlow.cs:18:63:18:69 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | provenance | | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:75:20:81 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | provenance | MaD:8 | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:22:73:22:89 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | provenance | | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:55 | access to parameter list : List | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | provenance | | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | provenance | | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | provenance | MaD:12 | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | provenance | MaD:12 | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | provenance | | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | provenance | MaD:7 | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary | provenance | | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary | CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair | provenance | MaD:21 | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | provenance | MaD:21 | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair | CollectionFlow.cs:32:68:32:85 | access to property Value : T | provenance | MaD:16 | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | provenance | | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:2 | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | provenance | MaD:9 | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | provenance | MaD:21 | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | provenance | MaD:8 | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | provenance | MaD:21 | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary | provenance | | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary | CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair | provenance | MaD:21 | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | provenance | MaD:21 | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair | CollectionFlow.cs:38:66:38:81 | access to property Key : T | provenance | MaD:15 | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | provenance | | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | CollectionFlow.cs:40:63:40:69 | access to array element | provenance | | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | CollectionFlow.cs:42:84:42:95 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | CollectionFlow.cs:47:27:47:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:13:46:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | CollectionFlow.cs:48:14:48:19 | access to array element | provenance | | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | provenance | | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:50:14:50:23 | call to method First | provenance | | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | CollectionFlow.cs:65:53:65:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:13:64:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | CollectionFlow.cs:66:14:66:20 | access to array element | provenance | | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:68:14:68:24 | call to method First | provenance | | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | CollectionFlow.cs:83:54:83:54 | access to local variable a : A | provenance | | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:13:82:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | provenance | | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | CollectionFlow.cs:84:14:84:21 | access to array element | provenance | | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:86:14:86:23 | call to method Last | provenance | | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | CollectionFlow.cs:93:18:93:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:13:91:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:94:14:94:19 | access to array element | provenance | | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:96:14:96:23 | call to method First | provenance | | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | CollectionFlow.cs:113:19:113:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:13:111:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:114:14:114:20 | access to array element | provenance | | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:116:14:116:22 | call to method Last | provenance | | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | CollectionFlow.cs:123:19:123:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:13:121:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:124:14:124:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:125:22:125:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | CollectionFlow.cs:126:24:126:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:13:122:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | provenance | MaD:13 | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | CollectionFlow.cs:124:14:124:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:133:14:133:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:133:14:133:20 | access to indexer | provenance | | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:134:22:134:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | CollectionFlow.cs:135:24:135:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:13:131:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:133:14:133:17 | access to local variable list : List | CollectionFlow.cs:133:14:133:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:134:22:134:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | CollectionFlow.cs:141:36:141:36 | access to local variable a : A | provenance | | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:13:140:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:142:14:142:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:143:22:143:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | CollectionFlow.cs:144:24:144:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:13:141:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | CollectionFlow.cs:142:14:142:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:150:14:150:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:150:14:150:20 | access to indexer | provenance | | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:151:22:151:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | CollectionFlow.cs:152:24:152:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:13:149:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:150:14:150:17 | access to local variable list : List | CollectionFlow.cs:150:14:150:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:151:22:151:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | CollectionFlow.cs:159:18:159:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:13:157:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:160:14:160:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:161:22:161:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | CollectionFlow.cs:162:24:162:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:13:158:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | CollectionFlow.cs:160:14:160:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:169:14:169:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:169:14:169:20 | access to indexer | provenance | | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:170:22:170:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | CollectionFlow.cs:171:24:171:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:13:167:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:169:14:169:17 | access to local variable list : List | CollectionFlow.cs:169:14:169:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:170:22:170:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | CollectionFlow.cs:178:19:178:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:13:176:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:179:14:179:20 | access to indexer | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | provenance | MaD:11 | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:179:14:179:20 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | provenance | MaD:7 | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | provenance | MaD:9 | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:190:14:190:20 | access to indexer | provenance | | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:191:23:191:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:191:23:191:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | CollectionFlow.cs:200:52:200:52 | access to local variable a : A | provenance | | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:13:199:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:201:14:201:20 | access to indexer | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:6 | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:201:14:201:20 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | provenance | MaD:7 | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | provenance | MaD:9 | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:211:14:211:20 | access to indexer | provenance | | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:212:23:212:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:212:23:212:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | CollectionFlow.cs:221:53:221:53 | access to local variable a : A | provenance | | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:13:220:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:222:14:222:20 | access to indexer | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | provenance | MaD:11 | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:222:14:222:20 | access to indexer | provenance | MaD:7 | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | provenance | MaD:7 | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | provenance | | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:2 | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | provenance | MaD:9 | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:233:14:233:20 | access to indexer | provenance | | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:234:23:234:26 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:234:23:234:26 | access to local variable dict : Dictionary | CollectionFlow.cs:20:61:20:64 | dict : Dictionary | provenance | | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | provenance | | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | provenance | | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | provenance | | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | provenance | MaD:21 | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | CollectionFlow.cs:243:49:243:49 | access to local variable a : A | provenance | | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:13:242:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary | CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:5 | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:244:14:244:30 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | provenance | MaD:8 | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:252:13:252:16 | access to local variable dict : Dictionary | CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:252:13:252:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | CollectionFlow.cs:262:48:262:48 | access to local variable a : A | provenance | | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:13:261:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary | CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | provenance | MaD:10 | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | provenance | MaD:1 | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | CollectionFlow.cs:263:14:263:30 | call to method First | provenance | MaD:21 | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:1 | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | provenance | MaD:8 | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | provenance | | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:271:13:271:16 | access to local variable dict : Dictionary | CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:271:13:271:16 | access to local variable dict : Dictionary | provenance | | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | provenance | | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | provenance | MaD:21 | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | CollectionFlow.cs:281:27:281:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:13:280:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | provenance | | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | CollectionFlow.cs:296:27:296:27 | access to local variable a : A | provenance | | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:13:295:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | provenance | | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | provenance | MaD:19 | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | provenance | | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | CollectionFlow.cs:299:18:299:35 | access to property Current | provenance | | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | CollectionFlow.cs:314:18:314:18 | access to local variable a : A | provenance | | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:13:312:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:313:13:313:16 | access to local variable list : List | CollectionFlow.cs:315:26:315:29 | access to local variable list : List | provenance | | +| CollectionFlow.cs:313:20:313:32 | object creation of type List : List | CollectionFlow.cs:313:13:313:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | provenance | MaD:18 | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:317:18:317:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:322:13:322:16 | access to local variable list : List | CollectionFlow.cs:324:26:324:29 | access to local variable list : List | provenance | | +| CollectionFlow.cs:322:20:322:32 | object creation of type List : List | CollectionFlow.cs:322:13:322:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:324:26:324:29 | access to local variable list : List | CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:324:26:324:29 | access to local variable list : List | CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | provenance | MaD:18 | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | provenance | | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:35 | access to property Current | provenance | | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | CollectionFlow.cs:326:18:326:35 | access to property Current | provenance | MaD:17 | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | CollectionFlow.cs:333:43:333:43 | access to local variable a : A | provenance | | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:13:331:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:332:13:332:16 | access to local variable list : List> | CollectionFlow.cs:334:9:334:12 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | CollectionFlow.cs:332:13:332:16 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | provenance | | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element] : KeyValuePair | provenance | | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element] : KeyValuePair | provenance | MaD:3 | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | provenance | MaD:3 | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | provenance | MaD:14 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List> | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | provenance | MaD:22 | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair | provenance | | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | provenance | | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair | CollectionFlow.cs:336:18:336:24 | access to property Key | provenance | MaD:15 | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:336:18:336:24 | access to property Key | provenance | | +| CollectionFlow.cs:344:13:344:16 | access to local variable list : List> | CollectionFlow.cs:346:9:346:12 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | CollectionFlow.cs:344:13:344:16 | access to local variable list : List> | provenance | | +| CollectionFlow.cs:345:9:345:12 | [post] access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:346:9:346:12 | access to local variable list : List [element] : KeyValuePair | provenance | | +| CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:345:9:345:12 | [post] access to local variable list : List [element] : KeyValuePair | provenance | MaD:3 | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List> | CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List [element] : KeyValuePair | CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | provenance | MaD:22 | +| CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | CollectionFlow.cs:348:18:348:20 | access to parameter kvp : KeyValuePair | provenance | | +| CollectionFlow.cs:348:18:348:20 | access to parameter kvp : KeyValuePair | CollectionFlow.cs:348:18:348:26 | access to property Value | provenance | MaD:16 | +| CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:55:353:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | provenance | | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | provenance | | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | CollectionFlow.cs:359:23:359:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:13:357:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | provenance | | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | provenance | | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | CollectionFlow.cs:360:14:360:19 | access to array element | provenance | | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | provenance | | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:362:14:362:23 | call to method First | provenance | | +| CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:55:375:61 | access to parameter element : A | provenance | | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | provenance | | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | CollectionFlow.cs:381:23:381:23 | access to local variable a : A | provenance | | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:13:379:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:382:14:382:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:383:22:383:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | CollectionFlow.cs:384:24:384:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:13:380:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | provenance | | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | provenance | MaD:3 | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | CollectionFlow.cs:382:14:382:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | CollectionFlow.cs:18:49:18:52 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | provenance | | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:391:14:391:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:391:14:391:20 | access to indexer | provenance | | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:392:22:392:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | CollectionFlow.cs:393:24:393:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:13:389:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:391:14:391:17 | access to local variable list : List | CollectionFlow.cs:391:14:391:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:392:22:392:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | provenance | | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | CollectionFlow.cs:40:49:40:52 | args : null [element] : A | provenance | | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | provenance | | +| CollectionFlow.cs:423:13:423:16 | access to local variable list : List | CollectionFlow.cs:425:9:425:12 | access to local variable list : List | provenance | | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:13:423:16 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:426:14:426:17 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:426:14:426:20 | access to indexer | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:427:22:427:25 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | CollectionFlow.cs:428:24:428:27 | access to local variable list : List | provenance | | +| CollectionFlow.cs:425:9:425:12 | access to local variable list : List | CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | provenance | MaD:4 | +| CollectionFlow.cs:425:9:425:12 | access to local variable list : List | CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | provenance | MaD:20 | +| CollectionFlow.cs:426:14:426:17 | access to local variable list : List | CollectionFlow.cs:426:14:426:20 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:427:22:427:25 | access to local variable list : List | CollectionFlow.cs:18:49:18:52 | list : List | provenance | | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | provenance | | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | provenance | | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | provenance | MaD:12 | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | CollectionFlow.cs:441:20:441:20 | access to local variable a : A | provenance | | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:13:439:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:440:13:440:17 | access to local variable array : MyInlineArray | CollectionFlow.cs:442:14:442:21 | access to array element | provenance | | +| CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:440:13:440:17 | access to local variable array : MyInlineArray | provenance | | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | provenance | | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | CollectionFlow.cs:442:14:442:21 | access to array element | provenance | | +| CollectionFlow.cs:447:13:447:17 | access to local variable array : MyInlineArray | CollectionFlow.cs:449:14:449:21 | access to array element | provenance | | +| CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:447:13:447:17 | access to local variable array : MyInlineArray | provenance | | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | CollectionFlow.cs:461:22:461:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:13:460:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:462:14:462:21 | access to array element | provenance | | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | CollectionFlow.cs:468:22:468:22 | access to local variable a : A | provenance | | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:13:467:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | provenance | | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | provenance | | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | CollectionFlow.cs:469:14:469:17 | access to indexer | provenance | MaD:12 | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | CollectionFlow.cs:481:21:481:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:13:480:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | provenance | | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | provenance | | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | CollectionFlow.cs:483:14:483:21 | access to array element | provenance | | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | CollectionFlow.cs:521:40:521:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:13:520:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | CollectionFlow.cs:522:14:522:17 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | provenance | MaD:27 | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | CollectionFlow.cs:522:14:522:20 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | CollectionFlow.cs:528:40:528:40 | access to local variable a : A | provenance | | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:13:527:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span | CollectionFlow.cs:529:19:529:22 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | CollectionFlow.cs:528:17:528:20 | access to local variable span : Span | provenance | | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | provenance | | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | provenance | MaD:27 | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : Object | CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : Object | provenance | | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span | CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : Object | provenance | MaD:29 | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | provenance | MaD:29 | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | provenance | | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : Object | CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : Object | provenance | | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | CollectionFlow.cs:530:14:530:19 | access to array element | provenance | | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : Object | CollectionFlow.cs:530:14:530:19 | access to array element | provenance | | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | CollectionFlow.cs:536:21:536:21 | access to local variable a : A | provenance | | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:13:535:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | provenance | MaD:26 | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:537:14:537:22 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span | CollectionFlow.cs:543:9:543:14 | access to local variable source : Span | provenance | | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | CollectionFlow.cs:542:13:542:18 | access to local variable source : Span | provenance | | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | provenance | | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | provenance | MaD:28 | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span | CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : Object | provenance | MaD:25 | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | provenance | MaD:25 | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | provenance | | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : Object | CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : Object | provenance | | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | CollectionFlow.cs:544:14:544:22 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : Object | CollectionFlow.cs:544:14:544:22 | access to indexer | provenance | MaD:30 | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | CollectionFlow.cs:550:60:550:60 | access to local variable a : A | provenance | | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:13:549:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | provenance | | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | provenance | | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | provenance | MaD:23 | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | provenance | | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | provenance | | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:24 | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | CollectionFlow.cs:551:14:551:20 | access to indexer | provenance | MaD:24 | +| CollectionFlow.cs:555:13:555:13 | access to local variable a : A | CollectionFlow.cs:556:19:556:19 | access to local variable a : A | provenance | | +| CollectionFlow.cs:555:17:555:23 | object creation of type A : A | CollectionFlow.cs:555:13:555:13 | access to local variable a : A | provenance | | +| CollectionFlow.cs:556:9:556:12 | [post] access to parameter dict : Dictionary [element, property Value] : A | CollectionFlow.cs:557:14:557:17 | access to parameter dict | provenance | | +| CollectionFlow.cs:556:19:556:19 | access to local variable a : A | CollectionFlow.cs:556:9:556:12 | [post] access to parameter dict : Dictionary [element, property Value] : A | provenance | MaD:11 | +nodes +| CollectionFlow.cs:14:40:14:41 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:14:40:14:41 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:14:52:14:53 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:14:52:14:56 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:16:44:16:45 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:57 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:16:56:16:61 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:18:49:18:52 | list : List | semmle.label | list : List | +| CollectionFlow.cs:18:49:18:52 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List | semmle.label | access to parameter list : List | +| CollectionFlow.cs:18:63:18:66 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:18:63:18:69 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:20:61:20:64 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:78 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:20:75:20:81 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:22:59:22:62 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:76 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:22:73:22:81 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:22:73:22:89 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | semmle.label | ts : null [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:24:41:24:42 | access to parameter ts : null [element] : A | semmle.label | access to parameter ts : null [element] : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:24:41:24:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | semmle.label | ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:41 | access to parameter ts : A[] [element] : A | semmle.label | access to parameter ts : A[] [element] : A | +| CollectionFlow.cs:26:40:26:45 | access to array element : A | semmle.label | access to array element : A | +| CollectionFlow.cs:28:43:28:46 | list : List | semmle.label | list : List | +| CollectionFlow.cs:28:43:28:46 | list : List [element] : A | semmle.label | list : List [element] : A | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List | semmle.label | access to parameter list : List | +| CollectionFlow.cs:28:52:28:55 | access to parameter list : List [element] : A | semmle.label | access to parameter list : List [element] : A | +| CollectionFlow.cs:28:52:28:58 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:28:52:28:58 | access to indexer : Object | semmle.label | access to indexer : Object | +| CollectionFlow.cs:28:52:28:58 | access to indexer : T | semmle.label | access to indexer : T | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:70 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:30:67:30:73 | access to indexer : A | semmle.label | access to indexer : A | +| CollectionFlow.cs:30:67:30:73 | access to indexer : T | semmle.label | access to indexer : T | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary | semmle.label | access to parameter dict : Dictionary | +| CollectionFlow.cs:32:68:32:71 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair | semmle.label | call to method First> : KeyValuePair | +| CollectionFlow.cs:32:68:32:79 | call to method First> : KeyValuePair [property Value] : A | semmle.label | call to method First> : KeyValuePair [property Value] : A | +| CollectionFlow.cs:32:68:32:85 | access to property Value : A | semmle.label | access to property Value : A | +| CollectionFlow.cs:32:68:32:85 | access to property Value : T | semmle.label | access to property Value : T | +| CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | semmle.label | dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:72 | access to parameter dict : Dictionary [element, property Value] : A | semmle.label | access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:34:69:34:79 | access to property Values : ICollection [element] : A | semmle.label | access to property Values : ICollection [element] : A | +| CollectionFlow.cs:34:69:34:87 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:70 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:36:67:36:75 | access to property Keys : ICollection [element] : A | semmle.label | access to property Keys : ICollection [element] : A | +| CollectionFlow.cs:36:67:36:83 | call to method First : A | semmle.label | call to method First : A | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary | semmle.label | dict : Dictionary | +| CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | semmle.label | dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary | semmle.label | access to parameter dict : Dictionary | +| CollectionFlow.cs:38:66:38:69 | access to parameter dict : Dictionary [element, property Key] : A | semmle.label | access to parameter dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair | semmle.label | call to method First> : KeyValuePair | +| CollectionFlow.cs:38:66:38:77 | call to method First> : KeyValuePair [property Key] : A | semmle.label | call to method First> : KeyValuePair [property Key] : A | +| CollectionFlow.cs:38:66:38:81 | access to property Key : A | semmle.label | access to property Key : A | +| CollectionFlow.cs:38:66:38:81 | access to property Key : T | semmle.label | access to property Key : T | +| CollectionFlow.cs:40:49:40:52 | args : A[] [element] : A | semmle.label | args : A[] [element] : A | +| CollectionFlow.cs:40:49:40:52 | args : null [element] : A | semmle.label | args : null [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : A[] [element] : A | semmle.label | access to parameter args : A[] [element] : A | +| CollectionFlow.cs:40:63:40:66 | access to parameter args : null [element] : A | semmle.label | access to parameter args : null [element] : A | +| CollectionFlow.cs:40:63:40:69 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:42:70:42:73 | args : IEnumerable [element] : A | semmle.label | args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:87 | access to parameter args : IEnumerable [element] : A | semmle.label | access to parameter args : IEnumerable [element] : A | +| CollectionFlow.cs:42:84:42:95 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:46:13:46:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:47:13:47:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:47:25:47:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:47:27:47:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:48:14:48:16 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:48:14:48:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:49:18:49:20 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:50:14:50:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:64:13:64:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:65:13:65:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:38:65:57 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:65:45:65:55 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:65:53:65:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:66:14:66:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:66:14:66:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:66:14:66:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:67:18:67:18 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:67:18:67:21 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:68:14:68:24 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:68:20:68:20 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:82:13:82:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:83:13:83:13 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:38:83:58 | { ..., ... } : CollectionFlow [field As, element] : A | semmle.label | { ..., ... } : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:83:45:83:56 | { ..., ... } : A[] [element] : A | semmle.label | { ..., ... } : A[] [element] : A | +| CollectionFlow.cs:83:54:83:54 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:84:14:84:14 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:84:14:84:17 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:84:14:84:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:85:22:85:22 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:85:22:85:25 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:86:14:86:23 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:86:19:86:19 | access to local variable c : CollectionFlow [field As, element] : A | semmle.label | access to local variable c : CollectionFlow [field As, element] : A | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | semmle.label | access to field As : A[] [element] : A | +| CollectionFlow.cs:91:13:91:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:93:9:93:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:93:18:93:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:94:14:94:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:94:14:94:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:95:18:95:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:96:14:96:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:111:13:111:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:113:9:113:11 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:113:19:113:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:114:14:114:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:114:14:114:20 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:115:22:115:24 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:116:14:116:22 | call to method Last | semmle.label | call to method Last | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:121:13:121:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:122:13:122:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:123:9:123:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:123:19:123:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:124:14:124:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:124:14:124:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:125:22:125:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:126:14:126:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:131:13:131:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:133:14:133:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:133:14:133:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:134:22:134:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:135:14:135:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:140:13:140:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:141:13:141:16 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List [element] : A | semmle.label | object creation of type List : List [element] : A | +| CollectionFlow.cs:141:36:141:36 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:142:14:142:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:142:14:142:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:143:22:143:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:144:14:144:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:149:13:149:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:150:14:150:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:150:14:150:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:151:22:151:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:152:14:152:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:157:13:157:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:158:13:158:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:159:9:159:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:159:18:159:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:160:14:160:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:160:14:160:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:161:22:161:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:162:14:162:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:167:13:167:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:169:14:169:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:169:14:169:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:170:22:170:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:171:14:171:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:176:13:176:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:177:13:177:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:178:9:178:12 | [post] access to local variable dict : Dictionary [element, property Value] : A | semmle.label | [post] access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:178:19:178:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:179:14:179:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:179:14:179:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:180:23:180:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:188:13:188:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:190:14:190:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:191:23:191:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:199:13:199:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:200:13:200:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:200:52:200:52 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:201:14:201:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:201:14:201:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:202:23:202:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:210:13:210:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:211:14:211:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:212:23:212:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:220:13:220:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:221:13:221:16 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary [element, property Value] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Value] : A | +| CollectionFlow.cs:221:53:221:53 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:222:14:222:17 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:222:14:222:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:223:23:223:26 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | semmle.label | call to method DictValuesFirst | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | semmle.label | access to local variable dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:232:13:232:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:233:14:233:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:234:23:234:26 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | semmle.label | call to method DictIndexZero | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | semmle.label | call to method DictFirstValue | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:242:13:242:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:243:13:243:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:243:49:243:49 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:244:14:244:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:244:14:244:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:244:14:244:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:245:21:245:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:252:13:252:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:261:13:261:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:262:13:262:16 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary [element, property Key] : A | semmle.label | object creation of type Dictionary : Dictionary [element, property Key] : A | +| CollectionFlow.cs:262:48:262:48 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:263:14:263:17 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:263:14:263:22 | access to property Keys : Dictionary.KeyCollection [element] : A | semmle.label | access to property Keys : Dictionary.KeyCollection [element] : A | +| CollectionFlow.cs:263:14:263:30 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:264:21:264:24 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | semmle.label | call to method DictKeysFirst | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | semmle.label | access to local variable dict : Dictionary [element, property Key] : A | +| CollectionFlow.cs:271:13:271:16 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | semmle.label | object creation of type Dictionary : Dictionary | +| CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | semmle.label | call to method DictFirstKey | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | semmle.label | access to local variable dict : Dictionary | +| CollectionFlow.cs:280:13:280:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:281:13:281:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:281:25:281:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:281:27:281:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:282:27:282:29 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:283:18:283:18 | access to local variable x | semmle.label | access to local variable x | +| CollectionFlow.cs:295:13:295:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:296:13:296:15 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:296:25:296:29 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:296:27:296:27 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:297:13:297:22 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:297:26:297:28 | access to local variable as : null [element] : A | semmle.label | access to local variable as : null [element] : A | +| CollectionFlow.cs:297:26:297:44 | call to method GetEnumerator : IEnumerator [property Current] : A | semmle.label | call to method GetEnumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:27 | access to local variable enumerator : IEnumerator [property Current] : A | semmle.label | access to local variable enumerator : IEnumerator [property Current] : A | +| CollectionFlow.cs:299:18:299:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:312:13:312:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:313:13:313:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:313:20:313:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:314:9:314:12 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:314:18:314:18 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:315:13:315:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:315:26:315:29 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : A | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:315:26:315:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : A | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : A | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:317:18:317:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:317:18:317:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:322:13:322:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:322:20:322:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:324:13:324:22 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:324:26:324:29 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:324:26:324:45 | call to method GetEnumerator : List.Enumerator [property Current] : Object | semmle.label | call to method GetEnumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:326:18:326:27 | access to local variable enumerator : List.Enumerator [property Current] : Object | semmle.label | access to local variable enumerator : List.Enumerator [property Current] : Object | +| CollectionFlow.cs:326:18:326:35 | access to property Current | semmle.label | access to property Current | +| CollectionFlow.cs:331:13:331:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:332:13:332:16 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | semmle.label | object creation of type List> : List> | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element, property Key] : A | semmle.label | [post] access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:333:9:333:12 | [post] access to local variable list : List [element] : KeyValuePair | semmle.label | [post] access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | semmle.label | object creation of type KeyValuePair : KeyValuePair | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair [property Key] : A | semmle.label | object creation of type KeyValuePair : KeyValuePair [property Key] : A | +| CollectionFlow.cs:333:43:333:43 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element, property Key] : A | semmle.label | access to local variable list : List [element, property Key] : A | +| CollectionFlow.cs:334:9:334:12 | access to local variable list : List [element] : KeyValuePair | semmle.label | access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair | semmle.label | kvp : KeyValuePair | +| CollectionFlow.cs:334:21:334:23 | kvp : KeyValuePair [property Key] : A | semmle.label | kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair | semmle.label | access to parameter kvp : KeyValuePair | +| CollectionFlow.cs:336:18:336:20 | access to parameter kvp : KeyValuePair [property Key] : A | semmle.label | access to parameter kvp : KeyValuePair [property Key] : A | +| CollectionFlow.cs:336:18:336:24 | access to property Key | semmle.label | access to property Key | +| CollectionFlow.cs:344:13:344:16 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | semmle.label | object creation of type List> : List> | +| CollectionFlow.cs:345:9:345:12 | [post] access to local variable list : List [element] : KeyValuePair | semmle.label | [post] access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | semmle.label | object creation of type KeyValuePair : KeyValuePair | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List> | semmle.label | access to local variable list : List> | +| CollectionFlow.cs:346:9:346:12 | access to local variable list : List [element] : KeyValuePair | semmle.label | access to local variable list : List [element] : KeyValuePair | +| CollectionFlow.cs:346:21:346:23 | kvp : KeyValuePair | semmle.label | kvp : KeyValuePair | +| CollectionFlow.cs:348:18:348:20 | access to parameter kvp : KeyValuePair | semmle.label | access to parameter kvp : KeyValuePair | +| CollectionFlow.cs:348:18:348:26 | access to property Value | semmle.label | access to property Value | +| CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | semmle.label | array [Return] : A[] [element] : A | +| CollectionFlow.cs:353:32:353:38 | element : A | semmle.label | element : A | +| CollectionFlow.cs:353:44:353:48 | [post] access to parameter array : A[] [element] : A | semmle.label | [post] access to parameter array : A[] [element] : A | +| CollectionFlow.cs:353:55:353:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:357:13:357:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | semmle.label | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:360:14:360:16 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:360:14:360:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:361:18:361:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:14:362:23 | call to method First | semmle.label | call to method First | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | +| CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | semmle.label | list [Return] : List [element] : A | +| CollectionFlow.cs:375:34:375:40 | element : A | semmle.label | element : A | +| CollectionFlow.cs:375:46:375:49 | [post] access to parameter list : List [element] : A | semmle.label | [post] access to parameter list : List [element] : A | +| CollectionFlow.cs:375:55:375:61 | access to parameter element : A | semmle.label | access to parameter element : A | +| CollectionFlow.cs:379:13:379:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:380:13:380:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | semmle.label | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:382:14:382:17 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:382:14:382:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:383:22:383:25 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:384:14:384:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | semmle.label | access to local variable list : List [element] : A | +| CollectionFlow.cs:389:13:389:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:391:14:391:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:391:14:391:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:392:22:392:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:393:14:393:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:401:20:401:38 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:401:28:401:38 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:417:30:417:38 | [...] : IEnumerable [element] : A | semmle.label | [...] : IEnumerable [element] : A | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:423:13:423:16 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | semmle.label | object creation of type List : List | +| CollectionFlow.cs:425:9:425:12 | [post] access to local variable list : List | semmle.label | [post] access to local variable list : List | +| CollectionFlow.cs:425:9:425:12 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:426:14:426:17 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:426:14:426:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:427:22:427:25 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:428:14:428:28 | call to method ListFirst | semmle.label | call to method ListFirst | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | semmle.label | access to local variable list : List | +| CollectionFlow.cs:439:13:439:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:440:13:440:17 | access to local variable array : MyInlineArray | semmle.label | access to local variable array : MyInlineArray | +| CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | semmle.label | object creation of type MyInlineArray : MyInlineArray | +| CollectionFlow.cs:441:9:441:13 | [post] access to local variable array : MyInlineArray [element] : A | semmle.label | [post] access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:441:20:441:20 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:442:14:442:18 | access to local variable array : MyInlineArray [element] : A | semmle.label | access to local variable array : MyInlineArray [element] : A | +| CollectionFlow.cs:442:14:442:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:447:13:447:17 | access to local variable array : MyInlineArray | semmle.label | access to local variable array : MyInlineArray | +| CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | semmle.label | object creation of type MyInlineArray : MyInlineArray | +| CollectionFlow.cs:449:14:449:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:460:13:460:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:461:13:461:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:461:21:461:23 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:461:22:461:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:462:14:462:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:462:14:462:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:467:13:467:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:468:17:468:17 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:468:21:468:23 | [...] : List [element] : A | semmle.label | [...] : List [element] : A | +| CollectionFlow.cs:468:22:468:22 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:469:14:469:14 | access to local variable l : List [element] : A | semmle.label | access to local variable l : List [element] : A | +| CollectionFlow.cs:469:14:469:17 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:480:13:480:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:481:13:481:16 | access to local variable temp : A[] [element] : A | semmle.label | access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:481:20:481:22 | [...] : A[] [element] : A | semmle.label | [...] : A[] [element] : A | +| CollectionFlow.cs:481:21:481:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:482:13:482:17 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:482:22:482:28 | .. access to local variable temp : A[] [element] : A | semmle.label | .. access to local variable temp : A[] [element] : A | +| CollectionFlow.cs:483:14:483:18 | access to local variable array : A[] [element] : A | semmle.label | access to local variable array : A[] [element] : A | +| CollectionFlow.cs:483:14:483:21 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:520:13:520:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:521:17:521:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | semmle.label | object creation of type Span : Span | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:521:40:521:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:522:14:522:17 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:522:14:522:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:527:13:527:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:528:17:528:20 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | semmle.label | object creation of type Span : Span | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:528:40:528:40 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:529:13:529:15 | access to local variable arr : T[] [element] : Object | semmle.label | access to local variable arr : T[] [element] : Object | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span | semmle.label | access to local variable span : Span | +| CollectionFlow.cs:529:19:529:22 | access to local variable span : Span [element] : A | semmle.label | access to local variable span : Span [element] : A | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : A | semmle.label | call to method ToArray : T[] [element] : A | +| CollectionFlow.cs:529:19:529:32 | call to method ToArray : T[] [element] : Object | semmle.label | call to method ToArray : T[] [element] : Object | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : A | semmle.label | access to local variable arr : T[] [element] : A | +| CollectionFlow.cs:530:14:530:16 | access to local variable arr : T[] [element] : Object | semmle.label | access to local variable arr : T[] [element] : Object | +| CollectionFlow.cs:530:14:530:19 | access to array element | semmle.label | access to array element | +| CollectionFlow.cs:535:13:535:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:536:9:536:14 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:536:21:536:21 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:537:14:537:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:537:14:537:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span | semmle.label | access to local variable source : Span | +| CollectionFlow.cs:542:13:542:18 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | semmle.label | object creation of type Span : Span | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span [element] : A | semmle.label | object creation of type Span : Span [element] : A | +| CollectionFlow.cs:542:34:542:50 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:542:40:542:50 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span | semmle.label | access to local variable source : Span | +| CollectionFlow.cs:543:9:543:14 | access to local variable source : Span [element] : A | semmle.label | access to local variable source : Span [element] : A | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : A | semmle.label | [post] access to parameter target : Span [element] : A | +| CollectionFlow.cs:543:23:543:28 | [post] access to parameter target : Span [element] : Object | semmle.label | [post] access to parameter target : Span [element] : Object | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : A | semmle.label | access to parameter target : Span [element] : A | +| CollectionFlow.cs:544:14:544:19 | access to parameter target : Span [element] : Object | semmle.label | access to parameter target : Span [element] : Object | +| CollectionFlow.cs:544:14:544:22 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:549:13:549:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan | semmle.label | access to local variable span : ReadOnlySpan | +| CollectionFlow.cs:550:25:550:28 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | semmle.label | object creation of type ReadOnlySpan : ReadOnlySpan | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | semmle.label | object creation of type ReadOnlySpan : ReadOnlySpan [element] : A | +| CollectionFlow.cs:550:52:550:62 | array creation of type A[] : null [element] : A | semmle.label | array creation of type A[] : null [element] : A | +| CollectionFlow.cs:550:58:550:62 | { ..., ... } : null [element] : A | semmle.label | { ..., ... } : null [element] : A | +| CollectionFlow.cs:550:60:550:60 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan | semmle.label | access to local variable span : ReadOnlySpan | +| CollectionFlow.cs:551:14:551:17 | access to local variable span : ReadOnlySpan [element] : A | semmle.label | access to local variable span : ReadOnlySpan [element] : A | +| CollectionFlow.cs:551:14:551:20 | access to indexer | semmle.label | access to indexer | +| CollectionFlow.cs:555:13:555:13 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:555:17:555:23 | object creation of type A : A | semmle.label | object creation of type A : A | +| CollectionFlow.cs:556:9:556:12 | [post] access to parameter dict : Dictionary [element, property Value] : A | semmle.label | [post] access to parameter dict : Dictionary [element, property Value] : A | +| CollectionFlow.cs:556:19:556:19 | access to local variable a : A | semmle.label | access to local variable a : A | +| CollectionFlow.cs:557:14:557:17 | access to parameter dict | semmle.label | access to parameter dict | +subpaths +| CollectionFlow.cs:50:20:50:22 | access to local variable as : null [element] : A | CollectionFlow.cs:24:34:24:35 | ts : null [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:50:14:50:23 | call to method First | +| CollectionFlow.cs:68:20:68:23 | access to field As : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:68:14:68:24 | call to method First | +| CollectionFlow.cs:86:19:86:22 | access to field As : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:86:14:86:23 | call to method Last | +| CollectionFlow.cs:96:20:96:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:96:14:96:23 | call to method First | +| CollectionFlow.cs:116:19:116:21 | access to local variable as : A[] [element] : A | CollectionFlow.cs:26:33:26:34 | ts : A[] [element] : A | CollectionFlow.cs:26:40:26:45 | access to array element : A | CollectionFlow.cs:116:14:116:22 | call to method Last | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:126:24:126:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | +| CollectionFlow.cs:135:24:135:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:144:24:144:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | +| CollectionFlow.cs:152:24:152:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:162:24:162:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | +| CollectionFlow.cs:171:24:171:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | +| CollectionFlow.cs:181:28:181:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | +| CollectionFlow.cs:182:29:182:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | +| CollectionFlow.cs:183:30:183:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | +| CollectionFlow.cs:192:28:192:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | +| CollectionFlow.cs:193:29:193:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | +| CollectionFlow.cs:203:28:203:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | +| CollectionFlow.cs:204:29:204:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | +| CollectionFlow.cs:205:30:205:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | +| CollectionFlow.cs:213:28:213:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | +| CollectionFlow.cs:214:29:214:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | +| CollectionFlow.cs:224:28:224:31 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:58:30:61 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:30:67:30:73 | access to indexer : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | +| CollectionFlow.cs:225:29:225:32 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:59:32:62 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:32:68:32:85 | access to property Value : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | +| CollectionFlow.cs:226:30:226:33 | access to local variable dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:60:34:63 | dict : Dictionary [element, property Value] : A | CollectionFlow.cs:34:69:34:87 | call to method First : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | +| CollectionFlow.cs:235:28:235:31 | access to local variable dict : Dictionary | CollectionFlow.cs:30:58:30:61 | dict : Dictionary | CollectionFlow.cs:30:67:30:73 | access to indexer : T | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | +| CollectionFlow.cs:236:29:236:32 | access to local variable dict : Dictionary | CollectionFlow.cs:32:59:32:62 | dict : Dictionary | CollectionFlow.cs:32:68:32:85 | access to property Value : T | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | +| CollectionFlow.cs:246:28:246:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | +| CollectionFlow.cs:247:27:247:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | +| CollectionFlow.cs:256:27:256:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | +| CollectionFlow.cs:265:28:265:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:58:36:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:36:67:36:83 | call to method First : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | +| CollectionFlow.cs:266:27:266:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:57:38:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:38:66:38:81 | access to property Key : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | +| CollectionFlow.cs:275:27:275:30 | access to local variable dict : Dictionary | CollectionFlow.cs:38:57:38:60 | dict : Dictionary | CollectionFlow.cs:38:66:38:81 | access to property Key : T | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | +| CollectionFlow.cs:359:23:359:23 | access to local variable a : A | CollectionFlow.cs:353:32:353:38 | element : A | CollectionFlow.cs:353:23:353:27 | array [Return] : A[] [element] : A | CollectionFlow.cs:359:18:359:20 | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:362:20:362:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:24:34:24:35 | ts : A[] [element] : A | CollectionFlow.cs:24:41:24:45 | access to array element : A | CollectionFlow.cs:362:14:362:23 | call to method First | +| CollectionFlow.cs:381:23:381:23 | access to local variable a : A | CollectionFlow.cs:375:34:375:40 | element : A | CollectionFlow.cs:375:26:375:29 | list [Return] : List [element] : A | CollectionFlow.cs:381:17:381:20 | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +| CollectionFlow.cs:384:24:384:27 | access to local variable list : List [element] : A | CollectionFlow.cs:28:43:28:46 | list : List [element] : A | CollectionFlow.cs:28:52:28:58 | access to indexer : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | +| CollectionFlow.cs:393:24:393:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : Object | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | +| CollectionFlow.cs:428:24:428:27 | access to local variable list : List | CollectionFlow.cs:28:43:28:46 | list : List | CollectionFlow.cs:28:52:28:58 | access to indexer : T | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | +#select +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:48:14:48:19 | access to array element | $@ | CollectionFlow.cs:48:14:48:19 | access to array element | access to array element | +| CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:46:17:46:23 | object creation of type A : A | CollectionFlow.cs:50:14:50:23 | call to method First | $@ | CollectionFlow.cs:50:14:50:23 | call to method First | call to method First | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:66:14:66:20 | access to array element | $@ | CollectionFlow.cs:66:14:66:20 | access to array element | access to array element | +| CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:64:17:64:23 | object creation of type A : A | CollectionFlow.cs:68:14:68:24 | call to method First | $@ | CollectionFlow.cs:68:14:68:24 | call to method First | call to method First | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:84:14:84:21 | access to array element | $@ | CollectionFlow.cs:84:14:84:21 | access to array element | access to array element | +| CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:82:17:82:23 | object creation of type A : A | CollectionFlow.cs:86:14:86:23 | call to method Last | $@ | CollectionFlow.cs:86:14:86:23 | call to method Last | call to method Last | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:94:14:94:19 | access to array element | $@ | CollectionFlow.cs:94:14:94:19 | access to array element | access to array element | +| CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:91:17:91:23 | object creation of type A : A | CollectionFlow.cs:96:14:96:23 | call to method First | $@ | CollectionFlow.cs:96:14:96:23 | call to method First | call to method First | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:16:56:16:61 | access to array element | $@ | CollectionFlow.cs:16:56:16:61 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:114:14:114:20 | access to array element | $@ | CollectionFlow.cs:114:14:114:20 | access to array element | access to array element | +| CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:111:17:111:23 | object creation of type A : A | CollectionFlow.cs:116:14:116:22 | call to method Last | $@ | CollectionFlow.cs:116:14:116:22 | call to method Last | call to method Last | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:124:14:124:20 | access to indexer | $@ | CollectionFlow.cs:124:14:124:20 | access to indexer | access to indexer | +| CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:121:17:121:23 | object creation of type A : A | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | $@ | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:124:14:124:20 | access to indexer | $@ | CollectionFlow.cs:124:14:124:20 | access to indexer | access to indexer | +| CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:122:20:122:32 | object creation of type List : List | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | $@ | CollectionFlow.cs:126:14:126:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:133:14:133:20 | access to indexer | $@ | CollectionFlow.cs:133:14:133:20 | access to indexer | access to indexer | +| CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:131:20:131:32 | object creation of type List : List | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | $@ | CollectionFlow.cs:135:14:135:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:142:14:142:20 | access to indexer | $@ | CollectionFlow.cs:142:14:142:20 | access to indexer | access to indexer | +| CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:140:17:140:23 | object creation of type A : A | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | $@ | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:142:14:142:20 | access to indexer | $@ | CollectionFlow.cs:142:14:142:20 | access to indexer | access to indexer | +| CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:141:20:141:38 | object creation of type List : List | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | $@ | CollectionFlow.cs:144:14:144:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:150:14:150:20 | access to indexer | $@ | CollectionFlow.cs:150:14:150:20 | access to indexer | access to indexer | +| CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:149:20:149:42 | object creation of type List : List | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | $@ | CollectionFlow.cs:152:14:152:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:160:14:160:20 | access to indexer | $@ | CollectionFlow.cs:160:14:160:20 | access to indexer | access to indexer | +| CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:157:17:157:23 | object creation of type A : A | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | $@ | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:160:14:160:20 | access to indexer | $@ | CollectionFlow.cs:160:14:160:20 | access to indexer | access to indexer | +| CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:158:20:158:32 | object creation of type List : List | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | $@ | CollectionFlow.cs:162:14:162:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:169:14:169:20 | access to indexer | $@ | CollectionFlow.cs:169:14:169:20 | access to indexer | access to indexer | +| CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:167:20:167:32 | object creation of type List : List | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | $@ | CollectionFlow.cs:171:14:171:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:179:14:179:20 | access to indexer | $@ | CollectionFlow.cs:179:14:179:20 | access to indexer | access to indexer | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:176:17:176:23 | object creation of type A : A | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:183:14:183:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:179:14:179:20 | access to indexer | $@ | CollectionFlow.cs:179:14:179:20 | access to indexer | access to indexer | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:181:14:181:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:177:20:177:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:182:14:182:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:190:14:190:20 | access to indexer | $@ | CollectionFlow.cs:190:14:190:20 | access to indexer | access to indexer | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:192:14:192:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:188:20:188:43 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:193:14:193:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:201:14:201:20 | access to indexer | $@ | CollectionFlow.cs:201:14:201:20 | access to indexer | access to indexer | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:199:17:199:23 | object creation of type A : A | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:205:14:205:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:201:14:201:20 | access to indexer | $@ | CollectionFlow.cs:201:14:201:20 | access to indexer | access to indexer | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:203:14:203:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:200:20:200:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:204:14:204:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:211:14:211:20 | access to indexer | $@ | CollectionFlow.cs:211:14:211:20 | access to indexer | access to indexer | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:213:14:213:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:210:20:210:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:214:14:214:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:222:14:222:20 | access to indexer | $@ | CollectionFlow.cs:222:14:222:20 | access to indexer | access to indexer | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:220:17:220:23 | object creation of type A : A | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | $@ | CollectionFlow.cs:226:14:226:34 | call to method DictValuesFirst | call to method DictValuesFirst | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:222:14:222:20 | access to indexer | $@ | CollectionFlow.cs:222:14:222:20 | access to indexer | access to indexer | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:224:14:224:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:221:20:221:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:225:14:225:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:20:75:20:81 | access to indexer | $@ | CollectionFlow.cs:20:75:20:81 | access to indexer | access to indexer | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:233:14:233:20 | access to indexer | $@ | CollectionFlow.cs:233:14:233:20 | access to indexer | access to indexer | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | $@ | CollectionFlow.cs:235:14:235:32 | call to method DictIndexZero | call to method DictIndexZero | +| CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:232:20:232:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | $@ | CollectionFlow.cs:236:14:236:33 | call to method DictFirstValue | call to method DictFirstValue | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:244:14:244:30 | call to method First | $@ | CollectionFlow.cs:244:14:244:30 | call to method First | call to method First | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:246:14:246:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:242:17:242:23 | object creation of type A : A | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:243:20:243:56 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:247:14:247:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:252:20:252:60 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:256:14:256:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:22:73:22:89 | call to method First | $@ | CollectionFlow.cs:22:73:22:89 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:263:14:263:30 | call to method First | $@ | CollectionFlow.cs:263:14:263:30 | call to method First | call to method First | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | $@ | CollectionFlow.cs:265:14:265:32 | call to method DictKeysFirst | call to method DictKeysFirst | +| CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:261:17:261:23 | object creation of type A : A | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:262:20:262:55 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:266:14:266:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:271:20:271:59 | object creation of type Dictionary : Dictionary | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | $@ | CollectionFlow.cs:275:14:275:31 | call to method DictFirstKey | call to method DictFirstKey | +| CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:280:17:280:23 | object creation of type A : A | CollectionFlow.cs:283:18:283:18 | access to local variable x | $@ | CollectionFlow.cs:283:18:283:18 | access to local variable x | access to local variable x | +| CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:295:17:295:23 | object creation of type A : A | CollectionFlow.cs:299:18:299:35 | access to property Current | $@ | CollectionFlow.cs:299:18:299:35 | access to property Current | access to property Current | +| CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:312:17:312:23 | object creation of type A : A | CollectionFlow.cs:317:18:317:35 | access to property Current | $@ | CollectionFlow.cs:317:18:317:35 | access to property Current | access to property Current | +| CollectionFlow.cs:313:20:313:32 | object creation of type List : List | CollectionFlow.cs:313:20:313:32 | object creation of type List : List | CollectionFlow.cs:317:18:317:35 | access to property Current | $@ | CollectionFlow.cs:317:18:317:35 | access to property Current | access to property Current | +| CollectionFlow.cs:322:20:322:32 | object creation of type List : List | CollectionFlow.cs:322:20:322:32 | object creation of type List : List | CollectionFlow.cs:326:18:326:35 | access to property Current | $@ | CollectionFlow.cs:326:18:326:35 | access to property Current | access to property Current | +| CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:331:17:331:23 | object creation of type A : A | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | CollectionFlow.cs:332:20:332:51 | object creation of type List> : List> | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:333:18:333:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:336:18:336:24 | access to property Key | $@ | CollectionFlow.cs:336:18:336:24 | access to property Key | access to property Key | +| CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | CollectionFlow.cs:344:20:344:51 | object creation of type List> : List> | CollectionFlow.cs:348:18:348:26 | access to property Value | $@ | CollectionFlow.cs:348:18:348:26 | access to property Value | access to property Value | +| CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:345:18:345:47 | object creation of type KeyValuePair : KeyValuePair | CollectionFlow.cs:348:18:348:26 | access to property Value | $@ | CollectionFlow.cs:348:18:348:26 | access to property Value | access to property Value | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:360:14:360:19 | access to array element | $@ | CollectionFlow.cs:360:14:360:19 | access to array element | access to array element | +| CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:357:17:357:23 | object creation of type A : A | CollectionFlow.cs:362:14:362:23 | call to method First | $@ | CollectionFlow.cs:362:14:362:23 | call to method First | call to method First | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:382:14:382:20 | access to indexer | $@ | CollectionFlow.cs:382:14:382:20 | access to indexer | access to indexer | +| CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:379:17:379:23 | object creation of type A : A | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | $@ | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:382:14:382:20 | access to indexer | $@ | CollectionFlow.cs:382:14:382:20 | access to indexer | access to indexer | +| CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:380:20:380:32 | object creation of type List : List | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | $@ | CollectionFlow.cs:384:14:384:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:391:14:391:20 | access to indexer | $@ | CollectionFlow.cs:391:14:391:20 | access to indexer | access to indexer | +| CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:389:20:389:32 | object creation of type List : List | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | $@ | CollectionFlow.cs:393:14:393:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:398:20:398:26 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:399:26:399:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:400:26:400:32 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:401:30:401:36 | object creation of type A : A | CollectionFlow.cs:40:63:40:69 | access to array element | $@ | CollectionFlow.cs:40:63:40:69 | access to array element | access to array element | +| CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:414:30:414:36 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:415:36:415:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:416:36:416:42 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:417:31:417:37 | object creation of type A : A | CollectionFlow.cs:42:84:42:95 | call to method First | $@ | CollectionFlow.cs:42:84:42:95 | call to method First | call to method First | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:18:63:18:69 | access to indexer | $@ | CollectionFlow.cs:18:63:18:69 | access to indexer | access to indexer | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:426:14:426:20 | access to indexer | $@ | CollectionFlow.cs:426:14:426:20 | access to indexer | access to indexer | +| CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:423:20:423:32 | object creation of type List : List | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | $@ | CollectionFlow.cs:428:14:428:28 | call to method ListFirst | call to method ListFirst | +| CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:439:17:439:23 | object creation of type A : A | CollectionFlow.cs:442:14:442:21 | access to array element | $@ | CollectionFlow.cs:442:14:442:21 | access to array element | access to array element | +| CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:440:21:440:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:442:14:442:21 | access to array element | $@ | CollectionFlow.cs:442:14:442:21 | access to array element | access to array element | +| CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:447:21:447:39 | object creation of type MyInlineArray : MyInlineArray | CollectionFlow.cs:449:14:449:21 | access to array element | $@ | CollectionFlow.cs:449:14:449:21 | access to array element | access to array element | +| CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:460:17:460:23 | object creation of type A : A | CollectionFlow.cs:462:14:462:21 | access to array element | $@ | CollectionFlow.cs:462:14:462:21 | access to array element | access to array element | +| CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:467:17:467:23 | object creation of type A : A | CollectionFlow.cs:469:14:469:17 | access to indexer | $@ | CollectionFlow.cs:469:14:469:17 | access to indexer | access to indexer | +| CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:480:17:480:23 | object creation of type A : A | CollectionFlow.cs:483:14:483:21 | access to array element | $@ | CollectionFlow.cs:483:14:483:21 | access to array element | access to array element | +| CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:520:17:520:23 | object creation of type A : A | CollectionFlow.cs:522:14:522:20 | access to indexer | $@ | CollectionFlow.cs:522:14:522:20 | access to indexer | access to indexer | +| CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | CollectionFlow.cs:521:24:521:41 | object creation of type Span : Span | CollectionFlow.cs:522:14:522:20 | access to indexer | $@ | CollectionFlow.cs:522:14:522:20 | access to indexer | access to indexer | +| CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:527:17:527:23 | object creation of type A : A | CollectionFlow.cs:530:14:530:19 | access to array element | $@ | CollectionFlow.cs:530:14:530:19 | access to array element | access to array element | +| CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | CollectionFlow.cs:528:24:528:41 | object creation of type Span : Span | CollectionFlow.cs:530:14:530:19 | access to array element | $@ | CollectionFlow.cs:530:14:530:19 | access to array element | access to array element | +| CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:535:17:535:23 | object creation of type A : A | CollectionFlow.cs:537:14:537:22 | access to indexer | $@ | CollectionFlow.cs:537:14:537:22 | access to indexer | access to indexer | +| CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | CollectionFlow.cs:542:22:542:51 | object creation of type Span : Span | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | +| CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:542:42:542:48 | object creation of type A : A | CollectionFlow.cs:544:14:544:22 | access to indexer | $@ | CollectionFlow.cs:544:14:544:22 | access to indexer | access to indexer | +| CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:549:17:549:23 | object creation of type A : A | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | +| CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:550:32:550:63 | object creation of type ReadOnlySpan : ReadOnlySpan | CollectionFlow.cs:551:14:551:20 | access to indexer | $@ | CollectionFlow.cs:551:14:551:20 | access to indexer | access to indexer | +| CollectionFlow.cs:555:17:555:23 | object creation of type A : A | CollectionFlow.cs:555:17:555:23 | object creation of type A : A | CollectionFlow.cs:557:14:557:17 | access to parameter dict | $@ | CollectionFlow.cs:557:14:557:17 | access to parameter dict | access to parameter dict | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql new file mode 100644 index 00000000000..7292e0dd0d6 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionTaintFlow.ql @@ -0,0 +1,12 @@ +/** + * @kind path-problem + */ + +import CollectionFlowCommon +import utils.test.ProvenancePathGraph::ShowProvenance + +module ArrayFlow = TaintTracking::Global; + +from ArrayFlow::PathNode source, ArrayFlow::PathNode sink +where ArrayFlow::flowPath(source, sink) +select source, source, sink, "$@", sink, sink.toString() diff --git a/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected b/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected index 574ef53eae6..678dca279ff 100644 --- a/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected @@ -1,27 +1,30 @@ models edges -| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | provenance | | +| Constructors.cs:3:18:3:26 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | provenance | | +| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:3:18:3:26 | [post] this access : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:5:29:5:45 | call to method Source : Object | Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:9:23:9:23 | access to local variable c : C_no_ctor [field s1] : Object | Constructors.cs:10:13:10:13 | access to local variable c : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | Constructors.cs:9:23:9:23 | access to local variable c : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:10:13:10:13 | access to local variable c : C_no_ctor [field s1] : Object | Constructors.cs:13:21:13:22 | this : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:13:21:13:22 | this : C_no_ctor [field s1] : Object | Constructors.cs:15:18:15:19 | this access : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:15:18:15:19 | this access : C_no_ctor [field s1] : Object | Constructors.cs:15:18:15:19 | access to field s1 | provenance | | -| Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | provenance | | +| Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | Constructors.cs:29:16:29:26 | [post] this access : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:21:29:21:45 | call to method Source : Object | Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:25:25:25:25 | access to local variable c : C_with_ctor [field s1] : Object | Constructors.cs:26:13:26:13 | access to local variable c : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | Constructors.cs:25:25:25:25 | access to local variable c : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:26:13:26:13 | access to local variable c : C_with_ctor [field s1] : Object | Constructors.cs:31:21:31:22 | this : C_with_ctor [field s1] : Object | provenance | | +| Constructors.cs:29:16:29:26 | [post] this access : C_with_ctor [field s1] : Object | Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:31:21:31:22 | this : C_with_ctor [field s1] : Object | Constructors.cs:33:18:33:19 | this access : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:33:18:33:19 | this access : C_with_ctor [field s1] : Object | Constructors.cs:33:18:33:19 | access to field s1 | provenance | | | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:38:41:38 | access to parameter o : Object | provenance | | | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:41:16:41:17 | this [Return] : C1 [field Obj] : Object | provenance | | | Constructors.cs:41:38:41:38 | access to parameter o : Object | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | provenance | | -| Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | provenance | | -| Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | provenance | | +| Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | provenance | | +| Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | provenance | | +| Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | provenance | | +| Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | provenance | | | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [parameter o22param] : Object | provenance | | -| Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | provenance | | | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | provenance | | | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | provenance | | | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | provenance | | @@ -120,6 +123,7 @@ edges | Constructors.cs:144:14:144:15 | access to local variable r1 : R1 [property Obj1] : Object | Constructors.cs:144:14:144:20 | access to property Obj1 | provenance | | | Constructors.cs:145:14:145:15 | access to local variable r1 : R1 [property Obj2] : Object | Constructors.cs:145:14:145:20 | access to property Obj2 | provenance | | nodes +| Constructors.cs:3:18:3:26 | [post] this access : C_no_ctor [field s1] : Object | semmle.label | [post] this access : C_no_ctor [field s1] : Object | | Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | semmle.label | [post] this access : C_no_ctor [field s1] : Object | | Constructors.cs:5:29:5:45 | call to method Source : Object | semmle.label | call to method Source : Object | | Constructors.cs:9:23:9:23 | access to local variable c : C_no_ctor [field s1] : Object | semmle.label | access to local variable c : C_no_ctor [field s1] : Object | @@ -133,6 +137,7 @@ nodes | Constructors.cs:25:25:25:25 | access to local variable c : C_with_ctor [field s1] : Object | semmle.label | access to local variable c : C_with_ctor [field s1] : Object | | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | semmle.label | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | | Constructors.cs:26:13:26:13 | access to local variable c : C_with_ctor [field s1] : Object | semmle.label | access to local variable c : C_with_ctor [field s1] : Object | +| Constructors.cs:29:16:29:26 | [post] this access : C_with_ctor [field s1] : Object | semmle.label | [post] this access : C_with_ctor [field s1] : Object | | Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | semmle.label | this [Return] : C_with_ctor [field s1] : Object | | Constructors.cs:31:21:31:22 | this : C_with_ctor [field s1] : Object | semmle.label | this : C_with_ctor [field s1] : Object | | Constructors.cs:33:18:33:19 | access to field s1 | semmle.label | access to field s1 | @@ -141,8 +146,10 @@ nodes | Constructors.cs:41:26:41:26 | o : Object | semmle.label | o : Object | | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | semmle.label | [post] this access : C1 [field Obj] : Object | | Constructors.cs:41:38:41:38 | access to parameter o : Object | semmle.label | access to parameter o : Object | +| Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | semmle.label | [post] this access : C2 [field Obj21] : Object | | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | semmle.label | this [Return] : C2 [field Obj21] : Object | | Constructors.cs:44:18:44:19 | this [Return] : C2 [parameter o22param] : Object | semmle.label | this [Return] : C2 [parameter o22param] : Object | +| Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | semmle.label | this access : C2 [parameter o21param] : Object | | Constructors.cs:44:28:44:35 | o21param : Object | semmle.label | o21param : Object | | Constructors.cs:44:45:44:52 | o22param : Object | semmle.label | o22param : Object | | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | semmle.label | [post] this access : C2 [field Obj21] : Object | @@ -249,6 +256,7 @@ nodes | Constructors.cs:145:14:145:15 | access to local variable r1 : R1 [property Obj2] : Object | semmle.label | access to local variable r1 : R1 [property Obj2] : Object | | Constructors.cs:145:14:145:20 | access to property Obj2 | semmle.label | access to property Obj2 | subpaths +| Constructors.cs:44:18:44:19 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | [post] this access : C2 [field Obj21] : Object | | Constructors.cs:64:37:64:37 | access to parameter o : Object | Constructors.cs:57:54:57:55 | o2 : Object | Constructors.cs:59:13:59:14 | access to parameter o1 : Object | Constructors.cs:64:27:64:34 | access to parameter o22param : Object | | Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:16:41:17 | this [Return] : C1 [field Obj] : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | | Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | diff --git a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql index 0f278c9df1c..f6aaf07485e 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/defUseEquivalence.ql @@ -1,9 +1,9 @@ import csharp -private import semmle.code.csharp.controlflow.internal.PreSsa +private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" def-use implementation. */ predicate defReaches( - AssignableDefinition def, PreSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn + AssignableDefinition def, BaseSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn ) { def.getTarget() = v and cfn = def.getExpr().getAControlFlowNode().getASuccessor() or diff --git a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql index 88b93ceedfd..87c26e32259 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/parameterUseEquivalence.ql @@ -1,10 +1,10 @@ import csharp -private import semmle.code.csharp.controlflow.internal.PreSsa +private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" parameter-use implementation. */ predicate parameterReaches(Parameter p, ControlFlow::Node cfn) { cfn = p.getCallable().getEntryPoint().getASuccessor() and - p instanceof PreSsa::SimpleLocalScopeVariable + p instanceof BaseSsa::SimpleLocalScopeVariable or exists(ControlFlow::Node mid | parameterReaches(p, mid) | not mid = diff --git a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql index 7952f3adef5..f212e48f1c4 100644 --- a/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql +++ b/csharp/ql/test/library-tests/dataflow/defuse/useUseEquivalence.ql @@ -1,9 +1,9 @@ import csharp -private import semmle.code.csharp.controlflow.internal.PreSsa +private import semmle.code.csharp.dataflow.internal.BaseSSA /** "Naive" use-use implementation. */ predicate useReaches( - LocalScopeVariableRead read, PreSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn + LocalScopeVariableRead read, BaseSsa::SimpleLocalScopeVariable v, ControlFlow::Node cfn ) { read.getTarget() = v and cfn = read.getAControlFlowNode().getASuccessor() or diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index ff9e6ab405e..4e469e11887 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -332,18 +332,18 @@ edges | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | provenance | | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | provenance | | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | provenance | | -| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | -| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | provenance | | | C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | provenance | | | C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | provenance | | -| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | -| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | provenance | | | C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | provenance | | | C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | provenance | | | C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | provenance | | | C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | provenance | | -| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | -| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | provenance | | | C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | provenance | | | C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | provenance | | | C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | provenance | | @@ -372,6 +372,12 @@ edges | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | C.cs:21:17:21:18 | this : C [field s3] : Elem | provenance | | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | provenance | | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | @@ -1627,6 +1633,12 @@ nodes | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | semmle.label | access to local variable c : C [field s3] : Elem | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | semmle.label | access to local variable c : C [property s5] : Elem | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | semmle.label | access to local variable c : C [property s5] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | semmle.label | [post] this access : C [field s1] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s1] : Elem | semmle.label | [post] this access : C [field s1] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | semmle.label | [post] this access : C [field s2] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [field s2] : Elem | semmle.label | [post] this access : C [field s2] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | semmle.label | [post] this access : C [property s5] : Elem | +| C.cs:16:13:16:13 | [post] this access : C [property s5] : Elem | semmle.label | [post] this access : C [property s5] : Elem | | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | semmle.label | this [Return] : C [field s1] : Elem | | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | semmle.label | this [Return] : C [field s1] : Elem | | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | semmle.label | this [Return] : C [field s2] : Elem | diff --git a/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected b/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected index cd7658f6f5e..3500820e250 100644 --- a/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected +++ b/csharp/ql/test/library-tests/dataflow/implicittostring/PrintAst.expected @@ -1,19 +1,19 @@ implicitToString.cs: # 3| [Class] TestClass -# 5| 5: [Class] MyClass -# 5| 4: [InstanceConstructor,PrimaryConstructor] MyClass -# 7| 5: [Method] ToString +# 5| 6: [Class] MyClass +# 5| 5: [InstanceConstructor,PrimaryConstructor] MyClass +# 7| 6: [Method] ToString # 7| -1: [TypeMention] string # 8| 4: [BlockStmt] {...} # 9| 0: [ReturnStmt] return ...; # 9| 0: [StringLiteralUtf16] "tainted" -# 13| 6: [Method] Sink +# 13| 7: [Method] Sink # 13| -1: [TypeMention] Void #-----| 2: (Parameters) # 13| 0: [Parameter] o # 13| -1: [TypeMention] object # 13| 4: [BlockStmt] {...} -# 15| 7: [Method] M1 +# 15| 8: [Method] M1 # 15| -1: [TypeMention] Void # 16| 4: [BlockStmt] {...} # 17| 0: [LocalVariableDeclStmt] ... ...; @@ -33,7 +33,7 @@ implicitToString.cs: # 19| 2: [ExprStmt] ...; # 19| 0: [MethodCall] call to method Sink # 19| 0: [LocalVariableAccess] access to local variable x2 -# 22| 8: [Method] M2 +# 22| 9: [Method] M2 # 22| -1: [TypeMention] Void # 23| 4: [BlockStmt] {...} # 24| 0: [LocalVariableDeclStmt] ... ...; @@ -53,7 +53,7 @@ implicitToString.cs: # 26| 2: [ExprStmt] ...; # 26| 0: [MethodCall] call to method Sink # 26| 0: [LocalVariableAccess] access to local variable x2 -# 29| 9: [Method] M3 +# 29| 10: [Method] M3 # 29| -1: [TypeMention] Void # 30| 4: [BlockStmt] {...} # 31| 0: [LocalVariableDeclStmt] ... ...; @@ -74,7 +74,7 @@ implicitToString.cs: # 33| 2: [ExprStmt] ...; # 33| 0: [MethodCall] call to method Sink # 33| 0: [LocalVariableAccess] access to local variable x2 -# 36| 10: [Method] M4 +# 36| 11: [Method] M4 # 36| -1: [TypeMention] Void # 37| 4: [BlockStmt] {...} # 38| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected index 6bf236135a2..861e4c519a8 100644 --- a/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -1,3 +1,4 @@ +| Capture.cs:3:14:3:20 | this | Capture.cs:3:14:3:20 | this access | | Capture.cs:5:17:5:17 | this | Capture.cs:13:9:13:14 | this access | | Capture.cs:7:17:7:17 | 0 | Capture.cs:7:13:7:13 | access to local variable i | | Capture.cs:13:9:13:14 | this access | Capture.cs:23:9:23:14 | this access | @@ -10,6 +11,11 @@ | Capture.cs:51:9:51:15 | this access | Capture.cs:63:9:63:15 | this access | | Capture.cs:58:21:58:21 | 1 | Capture.cs:58:17:58:17 | access to local variable i | | Capture.cs:61:17:61:17 | 1 | Capture.cs:61:13:61:13 | access to local variable i | +| LocalDataFlow.cs:13:25:13:35 | this | LocalDataFlow.cs:13:25:13:35 | this access | +| LocalDataFlow.cs:29:18:29:24 | this | LocalDataFlow.cs:29:18:29:24 | this access | +| LocalDataFlow.cs:37:25:37:45 | this | LocalDataFlow.cs:37:25:37:45 | this access | +| LocalDataFlow.cs:38:25:38:43 | this | LocalDataFlow.cs:38:25:38:43 | this access | +| LocalDataFlow.cs:46:14:46:26 | this | LocalDataFlow.cs:46:14:46:26 | this access | | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | LocalDataFlow.cs:84:21:84:21 | access to parameter b | | LocalDataFlow.cs:48:24:48:24 | b | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | | LocalDataFlow.cs:51:13:51:17 | access to local variable sink0 | LocalDataFlow.cs:51:13:51:34 | SSA def(sink0) | @@ -482,6 +488,7 @@ | LocalDataFlow.cs:314:22:314:26 | access to local variable sink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | LocalDataFlow.cs:314:13:314:18 | access to local variable sink74 | | LocalDataFlow.cs:314:31:314:38 | access to local variable nonSink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | +| LocalDataFlow.cs:328:18:328:29 | this | LocalDataFlow.cs:328:18:328:29 | this access | | LocalDataFlow.cs:334:28:334:30 | SSA entry def(this.anInt) | LocalDataFlow.cs:334:41:334:45 | access to field anInt | | LocalDataFlow.cs:334:28:334:30 | this | LocalDataFlow.cs:334:41:334:45 | this access | | LocalDataFlow.cs:334:50:334:52 | SSA param(value) | LocalDataFlow.cs:334:64:334:68 | access to parameter value | @@ -500,11 +507,11 @@ | LocalDataFlow.cs:353:21:353:21 | access to parameter x | LocalDataFlow.cs:353:16:353:21 | ... = ... | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:29 | access to local variable os2 | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:34 | ... = ... | -| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:363:29:363:32 | access to parameter args | +| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:364:27:364:30 | access to parameter args | | LocalDataFlow.cs:361:41:361:44 | args | LocalDataFlow.cs:361:41:361:44 | SSA param(args) | -| LocalDataFlow.cs:363:29:363:32 | [post] access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | call to operator implicit conversion | LocalDataFlow.cs:363:22:363:25 | access to local variable span | +| LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | LocalDataFlow.cs:363:30:363:31 | access to parameter dt | +| LocalDataFlow.cs:361:56:361:57 | dt | LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | +| LocalDataFlow.cs:363:30:363:31 | call to operator implicit conversion | LocalDataFlow.cs:363:24:363:26 | access to local variable dto | | LocalDataFlow.cs:364:27:364:30 | call to operator implicit conversion | LocalDataFlow.cs:364:23:364:23 | access to local variable x | | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | LocalDataFlow.cs:371:13:371:14 | access to parameter b1 | | LocalDataFlow.cs:367:23:367:24 | b1 | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | @@ -519,6 +526,7 @@ | LocalDataFlow.cs:381:13:381:13 | access to local variable x | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | LocalDataFlow.cs:381:17:381:29 | "not tainted" | LocalDataFlow.cs:381:13:381:13 | access to local variable x | +| SSA.cs:3:14:3:16 | this | SSA.cs:3:14:3:16 | this access | | SSA.cs:5:17:5:17 | SSA entry def(this.S) | SSA.cs:67:9:67:14 | access to field S | | SSA.cs:5:17:5:17 | this | SSA.cs:67:9:67:12 | this access | | SSA.cs:5:26:5:32 | SSA param(tainted) | SSA.cs:8:24:8:30 | access to parameter tainted | @@ -917,6 +925,7 @@ | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | | SSA.cs:177:21:177:28 | [post] access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | +| Splitting.cs:1:7:1:15 | this | Splitting.cs:1:7:1:15 | this access | | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:6:13:6:13 | access to parameter b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | | Splitting.cs:3:28:3:34 | SSA param(tainted) | Splitting.cs:5:17:5:23 | access to parameter tainted | @@ -1001,6 +1010,7 @@ | Splitting.cs:57:17:57:17 | access to local variable y | Splitting.cs:58:27:58:27 | access to local variable y | | Splitting.cs:58:22:58:22 | SSA def(s) | Splitting.cs:59:19:59:19 | access to local variable s | | Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | SSA def(s) | +| UseUseExplosion.cs:1:7:1:7 | this | UseUseExplosion.cs:1:7:1:7 | this access | | UseUseExplosion.cs:21:10:21:10 | SSA entry def(this.Prop) | UseUseExplosion.cs:24:13:24:16 | access to property Prop | | UseUseExplosion.cs:21:10:21:10 | this | UseUseExplosion.cs:24:13:24:16 | this access | | UseUseExplosion.cs:23:13:23:13 | access to local variable x | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs b/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs index 900a2161715..53b6165dd75 100644 --- a/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs +++ b/csharp/ql/test/library-tests/dataflow/local/LocalDataFlow.cs @@ -358,9 +358,9 @@ public class LocalDataFlow public static implicit operator LocalDataFlow(string[] args) => null; - public void ConversionFlow(string[] args) + public void ConversionFlow(string[] args, DateTime dt) { - Span span = args; // flow (library operator) + DateTimeOffset dto = dt; // flow (library operator) LocalDataFlow x = args; // no flow (source code operator) } diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index 1e9e48f5456..b2d395d4b83 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -1,3 +1,4 @@ +| Capture.cs:3:14:3:20 | this | Capture.cs:3:14:3:20 | this access | | Capture.cs:5:17:5:17 | this | Capture.cs:13:9:13:14 | this access | | Capture.cs:7:17:7:17 | 0 | Capture.cs:7:13:7:13 | access to local variable i | | Capture.cs:13:9:13:14 | this access | Capture.cs:23:9:23:14 | this access | @@ -10,6 +11,11 @@ | Capture.cs:51:9:51:15 | this access | Capture.cs:63:9:63:15 | this access | | Capture.cs:58:21:58:21 | 1 | Capture.cs:58:17:58:17 | access to local variable i | | Capture.cs:61:17:61:17 | 1 | Capture.cs:61:13:61:13 | access to local variable i | +| LocalDataFlow.cs:13:25:13:35 | this | LocalDataFlow.cs:13:25:13:35 | this access | +| LocalDataFlow.cs:29:18:29:24 | this | LocalDataFlow.cs:29:18:29:24 | this access | +| LocalDataFlow.cs:37:25:37:45 | this | LocalDataFlow.cs:37:25:37:45 | this access | +| LocalDataFlow.cs:38:25:38:43 | this | LocalDataFlow.cs:38:25:38:43 | this access | +| LocalDataFlow.cs:46:14:46:26 | this | LocalDataFlow.cs:46:14:46:26 | this access | | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | LocalDataFlow.cs:84:21:84:21 | access to parameter b | | LocalDataFlow.cs:48:24:48:24 | b | LocalDataFlow.cs:48:24:48:24 | SSA param(b) | | LocalDataFlow.cs:51:13:51:17 | access to local variable sink0 | LocalDataFlow.cs:51:13:51:34 | SSA def(sink0) | @@ -593,6 +599,7 @@ | LocalDataFlow.cs:314:22:314:26 | access to local variable sink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | LocalDataFlow.cs:314:13:314:18 | access to local variable sink74 | | LocalDataFlow.cs:314:31:314:38 | access to local variable nonSink0 | LocalDataFlow.cs:314:22:314:38 | ... ?? ... | +| LocalDataFlow.cs:328:18:328:29 | this | LocalDataFlow.cs:328:18:328:29 | this access | | LocalDataFlow.cs:334:28:334:30 | SSA entry def(this.anInt) | LocalDataFlow.cs:334:41:334:45 | access to field anInt | | LocalDataFlow.cs:334:28:334:30 | this | LocalDataFlow.cs:334:41:334:45 | this access | | LocalDataFlow.cs:334:50:334:52 | SSA param(value) | LocalDataFlow.cs:334:64:334:68 | access to parameter value | @@ -611,12 +618,12 @@ | LocalDataFlow.cs:353:21:353:21 | access to parameter x | LocalDataFlow.cs:353:16:353:21 | ... = ... | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:29 | access to local variable os2 | | LocalDataFlow.cs:356:33:356:34 | access to parameter os | LocalDataFlow.cs:356:27:356:34 | ... = ... | -| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:363:29:363:32 | access to parameter args | +| LocalDataFlow.cs:361:41:361:44 | SSA param(args) | LocalDataFlow.cs:364:27:364:30 | access to parameter args | | LocalDataFlow.cs:361:41:361:44 | args | LocalDataFlow.cs:361:41:361:44 | SSA param(args) | -| LocalDataFlow.cs:363:29:363:32 | [post] access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | access to parameter args | LocalDataFlow.cs:363:29:363:32 | call to operator implicit conversion | -| LocalDataFlow.cs:363:29:363:32 | access to parameter args | LocalDataFlow.cs:364:27:364:30 | access to parameter args | -| LocalDataFlow.cs:363:29:363:32 | call to operator implicit conversion | LocalDataFlow.cs:363:22:363:25 | access to local variable span | +| LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | LocalDataFlow.cs:363:30:363:31 | access to parameter dt | +| LocalDataFlow.cs:361:56:361:57 | dt | LocalDataFlow.cs:361:56:361:57 | SSA param(dt) | +| LocalDataFlow.cs:363:30:363:31 | access to parameter dt | LocalDataFlow.cs:363:30:363:31 | call to operator implicit conversion | +| LocalDataFlow.cs:363:30:363:31 | call to operator implicit conversion | LocalDataFlow.cs:363:24:363:26 | access to local variable dto | | LocalDataFlow.cs:364:27:364:30 | call to operator implicit conversion | LocalDataFlow.cs:364:23:364:23 | access to local variable x | | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | LocalDataFlow.cs:371:13:371:14 | access to parameter b1 | | LocalDataFlow.cs:367:23:367:24 | b1 | LocalDataFlow.cs:367:23:367:24 | SSA param(b1) | @@ -631,6 +638,7 @@ | LocalDataFlow.cs:381:13:381:13 | access to local variable x | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | | LocalDataFlow.cs:381:13:381:29 | SSA def(x) | LocalDataFlow.cs:382:15:382:15 | access to local variable x | | LocalDataFlow.cs:381:17:381:29 | "not tainted" | LocalDataFlow.cs:381:13:381:13 | access to local variable x | +| SSA.cs:3:14:3:16 | this | SSA.cs:3:14:3:16 | this access | | SSA.cs:5:17:5:17 | SSA entry def(this.S) | SSA.cs:67:9:67:14 | access to field S | | SSA.cs:5:17:5:17 | this | SSA.cs:67:9:67:12 | this access | | SSA.cs:5:26:5:32 | SSA param(tainted) | SSA.cs:8:24:8:30 | access to parameter tainted | @@ -1047,6 +1055,7 @@ | SSA.cs:176:21:176:28 | access to local variable ssaSink5 | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | | SSA.cs:177:21:177:28 | [post] access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | | SSA.cs:177:21:177:28 | access to local variable ssaSink5 | SSA.cs:174:20:174:20 | SSA phi read(ssaSink5) | +| Splitting.cs:1:7:1:15 | this | Splitting.cs:1:7:1:15 | this access | | Splitting.cs:3:18:3:18 | SSA param(b) | Splitting.cs:6:13:6:13 | access to parameter b | | Splitting.cs:3:18:3:18 | b | Splitting.cs:3:18:3:18 | SSA param(b) | | Splitting.cs:3:28:3:34 | SSA param(tainted) | Splitting.cs:5:17:5:23 | access to parameter tainted | @@ -1143,6 +1152,7 @@ | Splitting.cs:58:22:58:22 | SSA def(s) | Splitting.cs:59:19:59:19 | access to local variable s | | Splitting.cs:58:22:58:22 | String s | Splitting.cs:58:22:58:22 | SSA def(s) | | Splitting.cs:58:27:58:27 | access to local variable y | Splitting.cs:58:22:58:22 | SSA def(s) | +| UseUseExplosion.cs:1:7:1:7 | this | UseUseExplosion.cs:1:7:1:7 | this access | | UseUseExplosion.cs:21:10:21:10 | SSA entry def(this.Prop) | UseUseExplosion.cs:24:13:24:16 | access to property Prop | | UseUseExplosion.cs:21:10:21:10 | this | UseUseExplosion.cs:24:13:24:16 | this access | | UseUseExplosion.cs:23:13:23:13 | access to local variable x | UseUseExplosion.cs:23:13:23:17 | SSA def(x) | diff --git a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected b/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected deleted file mode 100644 index 4fa64b47674..00000000000 --- a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -defReadInconsistency -readReadInconsistency -phiInconsistency diff --git a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql b/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql deleted file mode 100644 index de7357d14b6..00000000000 --- a/csharp/ql/test/library-tests/dataflow/ssa/PreSsaConsistency.ql +++ /dev/null @@ -1,99 +0,0 @@ -import csharp -import semmle.code.csharp.controlflow.internal.PreSsa -import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl -import semmle.code.csharp.dataflow.internal.SsaImpl as SsaImpl - -class CallableWithSplitting extends Callable { - CallableWithSplitting() { this = any(SplitAstNode n).getEnclosingCallable() } -} - -query predicate defReadInconsistency( - AssignableRead ar, Expr e, PreSsa::SsaInput::SourceVariable v, boolean b -) { - // Exclude definitions in callables with CFG splitting, as SSA definitions may be - // very different from pre-SSA definitions - not ar.getEnclosingCallable() instanceof CallableWithSplitting and - exists(AssignableDefinition def | e = def.getExpr() | - b = true and - exists(PreSsa::Definition ssaDef | ssaDef.getSourceVariable() = v | - ar = ssaDef.getAFirstRead() and - ssaDef.getDefinition() = def and - not exists(Ssa::ExplicitDefinition edef | - edef.getADefinition() = def and - edef.getAFirstRead() = ar - ) - ) - or - b = false and - exists(Ssa::ExplicitDefinition edef | - edef.getADefinition() = def and - edef.getAFirstRead() = ar and - def.getTarget() = v and - not exists(PreSsa::Definition ssaDef | - ar = ssaDef.getAFirstRead() and - ssaDef.getDefinition() = def - ) - ) - ) -} - -query predicate readReadInconsistency( - LocalScopeVariableRead read1, LocalScopeVariableRead read2, PreSsa::SsaInput::SourceVariable v, - boolean b -) { - // Exclude definitions in callables with CFG splitting, as SSA definitions may be - // very different from pre-SSA definitions - not read1.getEnclosingCallable() instanceof CallableWithSplitting and - ( - b = true and - v = read1.getTarget() and - PreSsa::adjacentReadPairSameVar(read1, read2) and - not SsaImpl::adjacentReadPairSameVar(_, read1.getAControlFlowNode(), read2.getAControlFlowNode()) - or - b = false and - v = read1.getTarget() and - SsaImpl::adjacentReadPairSameVar(_, read1.getAControlFlowNode(), read2.getAControlFlowNode()) and - read1.getTarget() instanceof PreSsa::SsaInput::SourceVariable and - not PreSsa::adjacentReadPairSameVar(read1, read2) and - // Exclude split CFG elements because SSA may be more precise than pre-SSA - // in those cases - not read1 instanceof SplitAstNode and - not read2 instanceof SplitAstNode - ) -} - -query predicate phiInconsistency( - ControlFlowElement cfe, Expr e, PreSsa::SsaInput::SourceVariable v, boolean b -) { - // Exclude definitions in callables with CFG splitting, as SSA definitions may be - // very different from pre-SSA definitions - not cfe.getEnclosingCallable() instanceof CallableWithSplitting and - exists(AssignableDefinition adef | e = adef.getExpr() | - b = true and - exists(PreSsa::PhiNode prePhi | v = prePhi.getSourceVariable() | - adef = prePhi.getAnInput+().getDefinition() and - cfe = prePhi.getBasicBlock().getFirstElement() and - not exists(Ssa::PhiNode phi, ControlFlow::BasicBlock bb, Ssa::ExplicitDefinition edef | - edef = phi.getAnUltimateDefinition() - | - edef.getADefinition() = adef and - phi.definesAt(_, bb, _) and - cfe = bb.getFirstNode().getAstNode() - ) - ) - or - b = false and - exists(Ssa::PhiNode phi, ControlFlow::BasicBlock bb, Ssa::ExplicitDefinition edef | - v = phi.getSourceVariable().getAssignable() - | - edef = phi.getAnUltimateDefinition() and - edef.getADefinition() = adef and - phi.definesAt(_, bb, _) and - cfe = bb.getFirstNode().getAstNode() and - not exists(PreSsa::PhiNode prePhi | - adef = prePhi.getAnInput+().getDefinition() and - cfe = prePhi.getBasicBlock().getFirstElement() - ) - ) - ) -} diff --git a/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected b/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected index 73b0a757b5a..583bae92d93 100644 --- a/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected +++ b/csharp/ql/test/library-tests/dataflow/tuples/DataFlowStep.expected @@ -1,3 +1,4 @@ +| Tuples.cs:3:7:3:12 | this | Tuples.cs:3:7:3:12 | this access | | Tuples.cs:7:13:7:14 | access to local variable o1 | Tuples.cs:7:13:7:34 | SSA def(o1) | | Tuples.cs:7:13:7:34 | SSA def(o1) | Tuples.cs:10:21:10:22 | access to local variable o1 | | Tuples.cs:7:18:7:34 | call to method Source | Tuples.cs:7:13:7:14 | access to local variable o1 | @@ -168,9 +169,12 @@ | Tuples.cs:87:30:87:30 | SSA def(r) | Tuples.cs:90:18:90:18 | access to local variable r | | Tuples.cs:87:30:87:30 | String r | Tuples.cs:87:30:87:30 | SSA def(r) | | Tuples.cs:91:18:91:18 | access to local variable q | Tuples.cs:91:18:91:18 | (...) ... | +| Tuples.cs:95:12:95:13 | this | Tuples.cs:95:12:95:13 | this access | | Tuples.cs:95:12:95:13 | this | Tuples.cs:95:22:95:22 | this | | Tuples.cs:95:22:95:22 | [post] this | Tuples.cs:95:29:95:29 | this | | Tuples.cs:95:22:95:22 | this | Tuples.cs:95:29:95:29 | this | +| Tuples.cs:95:29:95:29 | [post] this | Tuples.cs:95:12:95:13 | this access | +| Tuples.cs:95:29:95:29 | this | Tuples.cs:95:12:95:13 | this access | | Tuples.cs:99:13:99:13 | access to local variable o | Tuples.cs:99:13:99:33 | SSA def(o) | | Tuples.cs:99:13:99:33 | SSA def(o) | Tuples.cs:100:24:100:24 | access to local variable o | | Tuples.cs:99:17:99:33 | call to method Source | Tuples.cs:99:13:99:13 | access to local variable o | @@ -225,3 +229,4 @@ | Tuples.cs:133:24:133:29 | (..., ...) | Tuples.cs:133:9:133:20 | (..., ...) | | Tuples.cs:133:25:133:25 | 1 | Tuples.cs:133:9:133:29 | ... = ... | | Tuples.cs:133:28:133:28 | access to local variable o | Tuples.cs:133:18:133:19 | access to local variable y4 | +| Tuples.cs:144:18:144:31 | this | Tuples.cs:144:18:144:31 | this access | diff --git a/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected b/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected index 7cbddb9d3d5..11e14eeb6c5 100644 --- a/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected +++ b/csharp/ql/test/library-tests/dataflow/tuples/PrintAst.expected @@ -1,6 +1,6 @@ Tuples.cs: # 3| [Class] Tuples -# 5| 5: [Method] M1 +# 5| 6: [Method] M1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -99,7 +99,7 @@ Tuples.cs: # 29| 0: [FieldAccess] access to field Item2 # 29| -1: [FieldAccess] access to field Item2 # 29| -1: [LocalVariableAccess] access to local variable x -# 32| 6: [Method] M2 +# 32| 7: [Method] M2 # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [LocalVariableDeclStmt] ... ...; @@ -144,7 +144,7 @@ Tuples.cs: # 40| 0: [MethodCall] call to method Sink # 40| 0: [FieldAccess] access to field Item10 # 40| -1: [LocalVariableAccess] access to local variable x -# 43| 7: [Method] M3 +# 43| 8: [Method] M3 # 43| -1: [TypeMention] Void # 44| 4: [BlockStmt] {...} # 45| 0: [LocalVariableDeclStmt] ... ...; @@ -201,7 +201,7 @@ Tuples.cs: # 52| 0: [CastExpr] (...) ... # 52| 1: [FieldAccess] access to field Item2 # 52| -1: [LocalVariableAccess] access to local variable y -# 55| 8: [Method] M4 +# 55| 9: [Method] M4 # 55| -1: [TypeMention] Void #-----| 2: (Parameters) # 55| 0: [Parameter] s @@ -352,34 +352,34 @@ Tuples.cs: # 91| 0: [MethodCall] call to method Sink # 91| 0: [CastExpr] (...) ... # 91| 1: [LocalVariableAccess] access to local variable q -# 95| 9: [RecordClass] R1 -# 95| 12: [NEOperator] != +# 95| 10: [RecordClass] R1 +# 95| 13: [NEOperator] != #-----| 2: (Parameters) # 95| 0: [Parameter] left # 95| 1: [Parameter] right -# 95| 13: [EQOperator] == +# 95| 14: [EQOperator] == #-----| 2: (Parameters) # 95| 0: [Parameter] left # 95| 1: [Parameter] right -# 95| 14: [Property] EqualityContract +# 95| 15: [Property] EqualityContract # 95| 3: [Getter] get_EqualityContract -# 95| 15: [InstanceConstructor,PrimaryConstructor] R1 +# 95| 16: [InstanceConstructor,PrimaryConstructor] R1 #-----| 2: (Parameters) # 95| 0: [Parameter] i # 95| -1: [TypeMention] string # 95| 1: [Parameter] j # 95| -1: [TypeMention] int -# 95| 16: [Property] i +# 95| 17: [Property] i # 95| 3: [Getter] get_i # 95| 4: [Setter] set_i #-----| 2: (Parameters) # 95| 0: [Parameter] value -# 95| 17: [Property] j +# 95| 18: [Property] j # 95| 3: [Getter] get_j # 95| 4: [Setter] set_j #-----| 2: (Parameters) # 95| 0: [Parameter] value -# 97| 10: [Method] M5 +# 97| 11: [Method] M5 # 97| -1: [TypeMention] Void # 98| 4: [BlockStmt] {...} # 99| 0: [LocalVariableDeclStmt] ... ...; @@ -428,7 +428,7 @@ Tuples.cs: # 111| 0: [CastExpr] (...) ... # 111| 1: [LocalVariableAccess] access to local variable y # 112| 3: [BreakStmt] break; -# 116| 11: [Method] M6 +# 116| 12: [Method] M6 # 116| -1: [TypeMention] Void # 117| 4: [BlockStmt] {...} # 118| 0: [LocalVariableDeclStmt] ... ...; @@ -504,13 +504,13 @@ Tuples.cs: # 134| 12: [ExprStmt] ...; # 134| 0: [MethodCall] call to method Sink # 134| 0: [LocalVariableAccess] access to local variable y4 -# 137| 12: [Method] Sink +# 137| 13: [Method] Sink # 137| -1: [TypeMention] Void #-----| 2: (Parameters) # 137| 0: [Parameter] o # 137| -1: [TypeMention] object # 137| 4: [BlockStmt] {...} -# 139| 15: [Method] Source`1 +# 139| 16: [Method] Source`1 # 139| -1: [TypeMention] T #-----| 1: (Type parameters) # 139| 0: [TypeParameter] T diff --git a/csharp/ql/test/library-tests/definitions/PrintAst.expected b/csharp/ql/test/library-tests/definitions/PrintAst.expected index 9b5606d30f5..28196c75a85 100644 --- a/csharp/ql/test/library-tests/definitions/PrintAst.expected +++ b/csharp/ql/test/library-tests/definitions/PrintAst.expected @@ -17,15 +17,15 @@ definitions.cs: # 15| 1: [IntLiteral] 2 # 15| 7: [Field] e3 # 18| 3: [Class] C1 -# 20| 4: [InstanceConstructor] C1 +# 20| 5: [InstanceConstructor] C1 #-----| 2: (Parameters) # 20| 0: [Parameter] args # 20| -1: [TypeMention] Int32[] # 20| 1: [TypeMention] int # 20| 4: [BlockStmt] {...} -# 22| 5: [Field] field1 +# 22| 6: [Field] field1 # 22| -1: [TypeMention] int -# 24| 6: [Property] property1 +# 24| 7: [Property] property1 # 24| -1: [TypeMention] int # 26| 3: [Getter] get_property1 # 26| 4: [BlockStmt] {...} @@ -39,7 +39,7 @@ definitions.cs: # 27| 0: [AssignExpr] ... = ... # 27| 0: [FieldAccess] access to field field1 # 27| 1: [ParameterAccess] access to parameter value -# 30| 7: [Method] f1 +# 30| 8: [Method] f1 # 30| -1: [TypeMention] Void #-----| 2: (Parameters) # 30| 0: [Parameter] args @@ -157,7 +157,7 @@ definitions.cs: # 67| 0: [LocalVariableAccess] access to local variable m1 # 67| 1: [ImplicitDelegateCreation] delegate creation of type Action # 67| 0: [MethodAccess] access to method GenericFn -# 70| 8: [Method] VariableTypeUse +# 70| 9: [Method] VariableTypeUse # 70| -1: [TypeMention] Void #-----| 2: (Parameters) # 70| 0: [Parameter] c1 @@ -168,7 +168,7 @@ definitions.cs: # 72| -1: [TypeMention] C1 # 72| 0: [LocalVariableAccess] access to local variable c2 # 72| 1: [NullLiteral] null -# 75| 10: [Method] GenericFn`1 +# 75| 11: [Method] GenericFn`1 # 75| -1: [TypeMention] Void #-----| 1: (Type parameters) # 75| 0: [TypeParameter] T @@ -177,7 +177,7 @@ definitions.cs: # 75| -1: [TypeMention] T # 75| 4: [BlockStmt] {...} # 78| 4: [Struct] S1 -# 80| 5: [Method] M +# 80| 6: [Method] M # 80| -1: [TypeMention] S1 #-----| 2: (Parameters) # 80| 0: [Parameter] ss @@ -216,8 +216,8 @@ definitions.cs: # 93| 0: [ObjectCreation] object creation of type S1 # 93| 0: [TypeMention] S1 # 97| 5: [Class] A -# 99| 5: [DelegateType] EventHandler -# 101| 6: [Event] Click +# 99| 6: [DelegateType] EventHandler +# 101| 7: [Event] Click # 101| -1: [TypeMention] EventHandler # 101| 3: [AddEventAccessor] add_Click #-----| 2: (Parameters) @@ -225,7 +225,7 @@ definitions.cs: # 101| 4: [RemoveEventAccessor] remove_Click #-----| 2: (Parameters) # 101| 0: [Parameter] value -# 103| 7: [Method] M +# 103| 8: [Method] M # 103| -1: [TypeMention] Void # 104| 4: [BlockStmt] {...} # 105| 0: [ExprStmt] ...; @@ -265,24 +265,24 @@ definitions.cs: # 121| 1: [TypeMention] I1 # 121| 2: [TypeMention] I2 # 121| 1: [TypeMention] A -# 123| 5: [Method] M +# 123| 6: [Method] M # 123| -1: [TypeMention] Void # 124| 4: [BlockStmt] {...} # 125| 0: [ExprStmt] ...; # 125| 0: [MethodCall] call to method M # 125| -1: [BaseAccess] base access -# 128| 6: [Method] M2`1 +# 128| 7: [Method] M2`1 # 128| -1: [TypeMention] I1 # 128| -1: [TypeMention] Void #-----| 1: (Type parameters) # 128| 0: [TypeParameter] T # 128| 4: [BlockStmt] {...} -# 130| 7: [Struct] S`1 +# 130| 8: [Struct] S`1 #-----| 1: (Type parameters) # 130| 0: [TypeParameter] T2 #-----| 3: (Base types) # 130| 1: [TypeMention] I3 -# 132| 8: [Method] Tuple +# 132| 9: [Method] Tuple # 132| -1: [TypeMention] (I1, B) # 132| 1: [TypeMention] I1 # 132| 2: [TypeMention] B @@ -290,7 +290,7 @@ definitions.cs: # 132| 4: [ThrowExpr] throw ... # 132| 0: [ObjectCreation] object creation of type Exception # 132| 0: [TypeMention] Exception -# 134| 9: [Indexer] Item +# 134| 10: [Indexer] Item # 134| -1: [TypeMention] B # 134| 1: [TypeMention] A #-----| 1: (Parameters) @@ -306,8 +306,8 @@ definitions.cs: # 134| 0: [TypeMention] B # 134| 1: [TypeMention] A # 137| 10: [Class] C -# 139| 5: [Enum] E -# 140| 6: [Method] Pointer +# 139| 6: [Enum] E +# 140| 7: [Method] Pointer # 140| -1: [TypeMention] E* # 140| 1: [TypeMention] E # 140| 4: [ThrowExpr] throw ... @@ -345,7 +345,7 @@ definitions.cs: # 151| 12: [Class] C4 #-----| 3: (Base types) # 151| 1: [TypeMention] I4 -# 153| 5: [Event] EH +# 153| 6: [Event] EH # 153| -1: [TypeMention] I4 # 153| 3: [AddEventAccessor] add_EH #-----| 2: (Parameters) @@ -355,20 +355,20 @@ definitions.cs: #-----| 2: (Parameters) # 153| 0: [Parameter] value # 153| 4: [BlockStmt] {...} -# 154| 6: [Method] M +# 154| 7: [Method] M # 154| -1: [TypeMention] I4 # 154| -1: [TypeMention] A # 154| 4: [ThrowExpr] throw ... # 154| 0: [ObjectCreation] object creation of type Exception # 154| 0: [TypeMention] Exception -# 155| 7: [Property] P +# 155| 8: [Property] P # 155| -1: [TypeMention] I4 # 155| -1: [TypeMention] I3 # 155| 3: [Getter] get_P # 155| 4: [ThrowExpr] throw ... # 155| 0: [ObjectCreation] object creation of type Exception # 155| 0: [TypeMention] Exception -# 156| 8: [Indexer] Item +# 156| 9: [Indexer] Item # 156| -1: [TypeMention] I4 # 156| -1: [TypeMention] S1 #-----| 1: (Parameters) @@ -385,10 +385,10 @@ definitions.cs: # 156| 0: [TypeMention] S1 # 156| 1: [ObjectCreation] object creation of type S1 # 156| 0: [TypeMention] S1 -# 158| 10: [Class] Nested`1 +# 158| 11: [Class] Nested`1 #-----| 1: (Type parameters) # 158| 0: [TypeParameter] T -# 160| 5: [Method] Create +# 160| 6: [Method] Create # 160| -1: [TypeMention] Nested # 160| 1: [TypeMention] T # 160| 4: [BlockStmt] {...} @@ -397,7 +397,7 @@ definitions.cs: # 160| 0: [TypeMention] Nested # 160| 1: [TypeMention] T # 164| 13: [Class] C5 -# 166| 5: [Field] f +# 166| 6: [Field] f # 166| -1: [TypeMention] Nested # 166| 1: [TypeMention] C4 # 166| 2: [TypeMention] I4 @@ -407,9 +407,9 @@ definitions.cs: # 166| 1: [TypeMention] I4 # 166| -1: [TypeAccess] access to type C4 # 166| 0: [TypeMention] C4 -# 167| 6: [Field] c1 +# 167| 7: [Field] c1 # 167| -1: [TypeMention] C1 -# 169| 7: [Method] M +# 169| 8: [Method] M # 169| -1: [TypeMention] Void # 170| 4: [BlockStmt] {...} # 171| 0: [LocalVariableDeclStmt] ... ...; @@ -450,7 +450,7 @@ definitions.cs: # 175| 1: [TypeMention] C4 # 175| 2: [TypeMention] I4 # 179| 14: [Class] C6 -# 181| 5: [ExplicitConversionOperator] explicit conversion +# 181| 6: [ExplicitConversionOperator] explicit conversion # 181| -1: [TypeMention] C5 #-----| 2: (Parameters) # 181| 0: [Parameter] c @@ -461,14 +461,14 @@ definitions.cs: # 182| 4: [BlockStmt] {...} # 183| 0: [ReturnStmt] return ...; # 183| 0: [NullLiteral] null -# 186| 6: [Method] M +# 186| 7: [Method] M # 186| -1: [TypeMention] C5 # 187| 4: [BlockStmt] {...} # 188| 0: [ReturnStmt] return ...; # 188| 0: [OperatorCall] call to operator explicit conversion # 188| -1: [TypeMention] C5 # 188| 0: [ThisAccess] this access -# 191| 7: [AddOperator] + +# 191| 8: [AddOperator] + # 191| -1: [TypeMention] C6 #-----| 2: (Parameters) # 191| 0: [Parameter] x @@ -480,10 +480,10 @@ definitions.cs: #-----| 3: (Base types) # 194| 0: [TypeMention] Attribute # 196| 16: [Class] C7 -# 198| 5: [Method] M +# 198| 6: [Method] M # 198| -1: [TypeMention] Void # 198| 4: [BlockStmt] {...} -# 200| 6: [Method] M2 +# 200| 7: [Method] M2 # 200| -1: [TypeMention] Void # 201| 4: [BlockStmt] {...} # 202| 0: [ExprStmt] ...; @@ -491,7 +491,7 @@ definitions.cs: # 202| -1: [TypeAccess] access to type C7 # 202| 0: [TypeMention] C7 # 206| 17: [Class] C8 -# 208| 5: [Method] F +# 208| 6: [Method] F # 208| -1: [TypeMention] Void # 209| 4: [BlockStmt] {...} # 210| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/delegates/PrintAst.expected b/csharp/ql/test/library-tests/delegates/PrintAst.expected index fee97ca9daf..86a5f9c241e 100644 --- a/csharp/ql/test/library-tests/delegates/PrintAst.expected +++ b/csharp/ql/test/library-tests/delegates/PrintAst.expected @@ -16,7 +16,7 @@ delegates.cs: # 9| 1: [Parameter] d # 9| -1: [TypeMention] double # 11| 3: [Class] A -# 14| 5: [Method] M1 +# 14| 6: [Method] M1 # 14| -1: [TypeMention] int #-----| 2: (Parameters) # 14| 0: [Parameter] a @@ -33,13 +33,13 @@ delegates.cs: # 14| 1: [ParameterAccess] access to parameter a # 14| 1: [ParameterAccess] access to parameter b # 18| 4: [Class] B -# 21| 5: [DelegateType] D2 +# 21| 6: [DelegateType] D2 #-----| 2: (Parameters) # 21| 0: [Parameter] c # 21| -1: [TypeMention] int # 21| 1: [Parameter] d # 21| -1: [TypeMention] double -# 23| 6: [Method] M1 +# 23| 7: [Method] M1 # 23| -1: [TypeMention] int #-----| 2: (Parameters) # 23| 0: [Parameter] f @@ -54,7 +54,7 @@ delegates.cs: # 23| 0: [TypeAccess] access to type Int32 # 23| 0: [TypeMention] int # 23| 1: [ParameterAccess] access to parameter g -# 25| 7: [Method] M2 +# 25| 8: [Method] M2 # 25| -1: [TypeMention] Void #-----| 2: (Parameters) # 25| 0: [Parameter] k @@ -62,7 +62,7 @@ delegates.cs: # 25| 1: [Parameter] l # 25| -1: [TypeMention] double # 25| 4: [BlockStmt] {...} -# 27| 8: [Method] M3 +# 27| 9: [Method] M3 # 27| -1: [TypeMention] int #-----| 2: (Parameters) # 27| 0: [Parameter] g @@ -74,7 +74,7 @@ delegates.cs: # 27| 0: [ParameterAccess] access to parameter g # 27| 1: [UnaryPlusExpr] +... # 27| 0: [ParameterAccess] access to parameter g -# 29| 9: [Method] M4 +# 29| 10: [Method] M4 # 29| -1: [TypeMention] Void #-----| 2: (Parameters) # 29| 0: [Parameter] g @@ -87,7 +87,7 @@ delegates.cs: # 33| 0: [Parameter] value # 33| -1: [TypeMention] T # 35| 6: [Class] X -# 38| 5: [Method] F +# 38| 6: [Method] F # 38| -1: [TypeMention] bool #-----| 2: (Parameters) # 38| 0: [Parameter] i @@ -97,7 +97,7 @@ delegates.cs: # 38| 0: [LTExpr] ... < ... # 38| 0: [ParameterAccess] access to parameter i # 38| 1: [IntLiteral] 2 -# 40| 6: [Method] G +# 40| 7: [Method] G # 40| -1: [TypeMention] bool #-----| 2: (Parameters) # 40| 0: [Parameter] s @@ -110,26 +110,26 @@ delegates.cs: # 44| 0: [Parameter] x # 44| -1: [TypeMention] int # 46| 8: [Class] C -# 49| 5: [Method] M1 +# 49| 6: [Method] M1 # 49| -1: [TypeMention] Void #-----| 2: (Parameters) # 49| 0: [Parameter] i # 49| -1: [TypeMention] int # 49| 4: [BlockStmt] {...} -# 50| 6: [Method] M2 +# 50| 7: [Method] M2 # 50| -1: [TypeMention] Void #-----| 2: (Parameters) # 50| 0: [Parameter] i # 50| -1: [TypeMention] int # 50| 4: [BlockStmt] {...} -# 51| 7: [Method] M3 +# 51| 8: [Method] M3 # 51| -1: [TypeMention] Void #-----| 2: (Parameters) # 51| 0: [Parameter] i # 51| -1: [TypeMention] int # 51| 4: [BlockStmt] {...} # 55| 9: [Class] Test -# 58| 5: [Method] Main +# 58| 6: [Method] Main # 58| -1: [TypeMention] Void # 59| 4: [BlockStmt] {...} # 60| 0: [LocalVariableDeclStmt] ... ...; @@ -250,25 +250,25 @@ delegates.cs: # 81| 0: [LocalVariableDeclExpr] ContextCallback d # 81| 0: [TypeMention] ContextCallback # 86| 10: [Class] E -# 88| 5: [Field] Field +# 88| 6: [Field] Field # 88| -1: [TypeMention] Action # 88| 1: [TypeMention] int -# 89| 6: [Property] Property +# 89| 7: [Property] Property # 89| -1: [TypeMention] Action # 89| 1: [TypeMention] int # 89| 3: [Getter] get_Property # 89| 4: [Setter] set_Property #-----| 2: (Parameters) # 89| 0: [Parameter] value -# 90| 7: [Field] FieldPtr +# 90| 8: [Field] FieldPtr # 90| -1: [TypeMention] delegate* default -# 91| 8: [Property] PropertyPtr +# 91| 9: [Property] PropertyPtr # 91| -1: [TypeMention] delegate* default # 91| 3: [Getter] get_PropertyPtr # 91| 4: [Setter] set_PropertyPtr #-----| 2: (Parameters) # 91| 0: [Parameter] value -# 93| 9: [Method] M +# 93| 10: [Method] M # 93| -1: [TypeMention] Void # 94| 4: [BlockStmt] {...} # 95| 0: [ExprStmt] ...; diff --git a/csharp/ql/test/library-tests/dynamic/PrintAst.expected b/csharp/ql/test/library-tests/dynamic/PrintAst.expected index 160242e47f7..3bde4d42d86 100644 --- a/csharp/ql/test/library-tests/dynamic/PrintAst.expected +++ b/csharp/ql/test/library-tests/dynamic/PrintAst.expected @@ -1,11 +1,11 @@ dynamic.cs: # 4| [Class] DynamicTest -# 6| 4: [InstanceConstructor] DynamicTest +# 6| 5: [InstanceConstructor] DynamicTest #-----| 2: (Parameters) # 6| 0: [Parameter] x # 6| -1: [TypeMention] int # 6| 4: [BlockStmt] {...} -# 8| 5: [Method] Main +# 8| 6: [Method] Main # 8| -1: [TypeMention] Void #-----| 2: (Parameters) # 8| 0: [Parameter] args @@ -235,25 +235,25 @@ dynamic.cs: # 75| 0: [DelegateCall] delegate call # 75| -1: [LocalVariableAccess] access to local variable d # 75| 0: [IntLiteral] 42 -# 78| 6: [Method] Foo +# 78| 7: [Method] Foo # 78| -1: [TypeMention] Void #-----| 2: (Parameters) # 78| 0: [Parameter] x # 78| -1: [TypeMention] int # 78| 4: [BlockStmt] {...} -# 79| 7: [Method] Foo +# 79| 8: [Method] Foo # 79| -1: [TypeMention] Void #-----| 2: (Parameters) # 79| 0: [Parameter] x # 79| -1: [TypeMention] string # 79| 4: [BlockStmt] {...} -# 81| 8: [Method] Bar +# 81| 9: [Method] Bar # 81| -1: [TypeMention] Void #-----| 2: (Parameters) # 81| 0: [Parameter] x # 81| -1: [TypeMention] string # 81| 4: [BlockStmt] {...} -# 83| 9: [IncrementOperator] ++ +# 83| 10: [IncrementOperator] ++ # 83| -1: [TypeMention] DynamicTest #-----| 2: (Parameters) # 83| 0: [Parameter] dt @@ -261,15 +261,15 @@ dynamic.cs: # 84| 4: [BlockStmt] {...} # 85| 0: [ReturnStmt] return ...; # 85| 0: [ParameterAccess] access to parameter dt -# 88| 10: [Field] Field +# 88| 11: [Field] Field # 88| -1: [TypeMention] int -# 90| 11: [Property] Prop +# 90| 12: [Property] Prop # 90| -1: [TypeMention] int # 90| 3: [Getter] get_Prop # 90| 4: [Setter] set_Prop #-----| 2: (Parameters) # 90| 0: [Parameter] value -# 92| 12: [Indexer] Item +# 92| 13: [Indexer] Item # 92| -1: [TypeMention] int #-----| 1: (Parameters) # 92| 0: [Parameter] x diff --git a/csharp/ql/test/library-tests/enums/PrintAst.expected b/csharp/ql/test/library-tests/enums/PrintAst.expected index bb9e5a3a9c9..3495c43a493 100644 --- a/csharp/ql/test/library-tests/enums/PrintAst.expected +++ b/csharp/ql/test/library-tests/enums/PrintAst.expected @@ -31,7 +31,7 @@ enums.cs: # 40| 1: [CastExpr] (...) ... # 40| 1: [MemberConstantAccess] access to constant Red # 44| 6: [Class] Test -# 47| 5: [Method] Main +# 47| 6: [Method] Main # 47| -1: [TypeMention] Void # 48| 4: [BlockStmt] {...} # 49| 0: [ExprStmt] ...; @@ -58,7 +58,7 @@ enums.cs: # 51| 0: [MemberConstantAccess] access to constant Blue # 51| -1: [TypeAccess] access to type SparseColor # 51| 0: [TypeMention] SparseColor -# 54| 6: [Method] StringFromColor +# 54| 7: [Method] StringFromColor # 54| -1: [TypeMention] string #-----| 2: (Parameters) # 54| 0: [Parameter] c diff --git a/csharp/ql/test/library-tests/events/PrintAst.expected b/csharp/ql/test/library-tests/events/PrintAst.expected index 84825067e42..4767ea99084 100644 --- a/csharp/ql/test/library-tests/events/PrintAst.expected +++ b/csharp/ql/test/library-tests/events/PrintAst.expected @@ -7,7 +7,7 @@ events.cs: # 7| 1: [Parameter] e # 7| -1: [TypeMention] object # 9| 2: [Class] Button -# 12| 5: [Event] Click +# 12| 6: [Event] Click # 12| -1: [TypeMention] EventHandler # 12| 3: [AddEventAccessor] add_Click #-----| 2: (Parameters) @@ -15,7 +15,7 @@ events.cs: # 12| 4: [RemoveEventAccessor] remove_Click #-----| 2: (Parameters) # 12| 0: [Parameter] value -# 14| 6: [Method] OnClick +# 14| 7: [Method] OnClick # 14| -1: [TypeMention] Void #-----| 2: (Parameters) # 14| 0: [Parameter] e @@ -30,7 +30,7 @@ events.cs: # 17| -1: [EventAccess,EventCall] access to event Click # 17| 0: [ThisAccess] this access # 17| 1: [ParameterAccess] access to parameter e -# 20| 7: [Method] Reset +# 20| 8: [Method] Reset # 20| -1: [TypeMention] Void # 21| 4: [BlockStmt] {...} # 22| 0: [ExprStmt] ...; @@ -38,11 +38,11 @@ events.cs: # 22| 0: [EventAccess,EventCall] access to event Click # 22| 1: [NullLiteral] null # 26| 3: [Class] LoginDialog -# 29| 4: [Field] OkButton +# 29| 5: [Field] OkButton # 29| -1: [TypeMention] Button -# 30| 5: [Field] CancelButton +# 30| 6: [Field] CancelButton # 30| -1: [TypeMention] Button -# 32| 6: [InstanceConstructor] LoginDialog +# 32| 7: [InstanceConstructor] LoginDialog # 33| 4: [BlockStmt] {...} # 34| 0: [ExprStmt] ...; # 34| 0: [AssignExpr] ... = ... @@ -68,7 +68,7 @@ events.cs: # 37| 1: [ExplicitDelegateCreation] delegate creation of type EventHandler # 37| -1: [TypeMention] EventHandler # 37| 0: [MethodAccess] access to method CancelButtonClick -# 40| 7: [Method] OkButtonClick +# 40| 8: [Method] OkButtonClick # 40| -1: [TypeMention] Void #-----| 2: (Parameters) # 40| 0: [Parameter] sender @@ -76,7 +76,7 @@ events.cs: # 40| 1: [Parameter] e # 40| -1: [TypeMention] object # 41| 4: [BlockStmt] {...} -# 44| 8: [Method] CancelButtonClick +# 44| 9: [Method] CancelButtonClick # 44| -1: [TypeMention] Void #-----| 2: (Parameters) # 44| 0: [Parameter] sender @@ -85,15 +85,15 @@ events.cs: # 44| -1: [TypeMention] object # 45| 4: [BlockStmt] {...} # 50| 4: [Class] Control -# 53| 6: [Field] mouseDownEventKey +# 53| 7: [Field] mouseDownEventKey # 53| -1: [TypeMention] object # 53| 1: [ObjectCreation] object creation of type Object # 53| 0: [TypeMention] object -# 54| 7: [Field] mouseUpEventKey +# 54| 8: [Field] mouseUpEventKey # 54| -1: [TypeMention] object # 54| 1: [ObjectCreation] object creation of type Object # 54| 0: [TypeMention] object -# 57| 8: [Method] GetEventHandler +# 57| 9: [Method] GetEventHandler # 57| -1: [TypeMention] Delegate #-----| 2: (Parameters) # 57| 0: [Parameter] key @@ -101,7 +101,7 @@ events.cs: # 57| 4: [BlockStmt] {...} # 57| 0: [ReturnStmt] return ...; # 57| 0: [NullLiteral] null -# 60| 9: [Method] AddEventHandler +# 60| 10: [Method] AddEventHandler # 60| -1: [TypeMention] Void #-----| 2: (Parameters) # 60| 0: [Parameter] key @@ -109,7 +109,7 @@ events.cs: # 60| 1: [Parameter] handler # 60| -1: [TypeMention] Delegate # 60| 4: [BlockStmt] {...} -# 63| 10: [Method] RemoveEventHandler +# 63| 11: [Method] RemoveEventHandler # 63| -1: [TypeMention] Void #-----| 2: (Parameters) # 63| 0: [Parameter] key @@ -117,7 +117,7 @@ events.cs: # 63| 1: [Parameter] handler # 63| -1: [TypeMention] Delegate # 63| 4: [BlockStmt] {...} -# 66| 11: [Event] MouseDown +# 66| 12: [Event] MouseDown # 68| 3: [AddEventAccessor] add_MouseDown #-----| 2: (Parameters) # 68| 0: [Parameter] value @@ -134,7 +134,7 @@ events.cs: # 69| 0: [MethodCall] call to method RemoveEventHandler # 69| 0: [FieldAccess] access to field mouseDownEventKey # 69| 1: [ParameterAccess] access to parameter value -# 73| 12: [Event] MouseUp +# 73| 13: [Event] MouseUp # 75| 3: [AddEventAccessor] add_MouseUp #-----| 2: (Parameters) # 75| 0: [Parameter] value @@ -151,7 +151,7 @@ events.cs: # 76| 0: [MethodCall] call to method RemoveEventHandler # 76| 0: [FieldAccess] access to field mouseUpEventKey # 76| 1: [ParameterAccess] access to parameter value -# 80| 13: [Method] OnMouseUp +# 80| 14: [Method] OnMouseUp # 80| -1: [TypeMention] Void #-----| 2: (Parameters) # 80| 0: [Parameter] args diff --git a/csharp/ql/test/library-tests/exceptions/PrintAst.expected b/csharp/ql/test/library-tests/exceptions/PrintAst.expected index bbe09076bc6..bdc7ecb3688 100644 --- a/csharp/ql/test/library-tests/exceptions/PrintAst.expected +++ b/csharp/ql/test/library-tests/exceptions/PrintAst.expected @@ -1,11 +1,11 @@ exceptions.cs: # 3| [Class] Class1 -# 5| 5: [Method] G +# 5| 6: [Method] G # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} -# 9| 6: [Field] p +# 9| 7: [Field] p # 9| -1: [TypeMention] int -# 11| 7: [Method] TestNoThrow +# 11| 8: [Method] TestNoThrow # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [TryStmt] try {...} ... @@ -38,7 +38,7 @@ exceptions.cs: # 33| 0: [TypeMention] Exception # 34| 1: [BlockStmt] {...} # 35| 0: [EmptyStmt] ; -# 43| 8: [Method] TestCall +# 43| 9: [Method] TestCall # 43| -1: [TypeMention] Void # 44| 4: [BlockStmt] {...} # 45| 0: [TryStmt] try {...} ... @@ -69,7 +69,7 @@ exceptions.cs: # 66| 5: [GeneralCatchClause] catch {...} # 67| 1: [BlockStmt] {...} # 68| 0: [EmptyStmt] ; -# 72| 9: [Method] TestCreation +# 72| 10: [Method] TestCreation # 72| -1: [TypeMention] Void # 73| 4: [BlockStmt] {...} # 74| 0: [TryStmt] try {...} ... @@ -106,7 +106,7 @@ exceptions.cs: # 95| 0: [TypeMention] Exception # 96| 1: [BlockStmt] {...} # 97| 0: [EmptyStmt] ; -# 101| 10: [Method] TestIntAdd +# 101| 11: [Method] TestIntAdd # 101| -1: [TypeMention] Void # 102| 4: [BlockStmt] {...} # 103| 0: [TryStmt] try {...} ... @@ -144,7 +144,7 @@ exceptions.cs: # 124| 0: [TypeMention] Exception # 125| 1: [BlockStmt] {...} # 126| 0: [EmptyStmt] ; -# 130| 11: [Method] TestIntSub +# 130| 12: [Method] TestIntSub # 130| -1: [TypeMention] Void # 131| 4: [BlockStmt] {...} # 132| 0: [TryStmt] try {...} ... @@ -182,7 +182,7 @@ exceptions.cs: # 153| 0: [TypeMention] Exception # 154| 1: [BlockStmt] {...} # 155| 0: [EmptyStmt] ; -# 159| 12: [Method] TestIntMul +# 159| 13: [Method] TestIntMul # 159| -1: [TypeMention] Void # 160| 4: [BlockStmt] {...} # 161| 0: [TryStmt] try {...} ... @@ -220,7 +220,7 @@ exceptions.cs: # 182| 0: [TypeMention] Exception # 183| 1: [BlockStmt] {...} # 184| 0: [EmptyStmt] ; -# 188| 13: [Method] TestStringLiteral +# 188| 14: [Method] TestStringLiteral # 188| -1: [TypeMention] Void # 189| 4: [BlockStmt] {...} # 190| 0: [TryStmt] try {...} ... @@ -256,7 +256,7 @@ exceptions.cs: # 211| 0: [TypeMention] Exception # 212| 1: [BlockStmt] {...} # 213| 0: [EmptyStmt] ; -# 217| 14: [Method] TestStringAdd +# 217| 15: [Method] TestStringAdd # 217| -1: [TypeMention] Void # 218| 4: [BlockStmt] {...} # 219| 0: [TryStmt] try {...} ... @@ -299,7 +299,7 @@ exceptions.cs: # 241| 0: [TypeMention] Exception # 242| 1: [BlockStmt] {...} # 243| 0: [EmptyStmt] ; -# 247| 15: [Method] TestDivide +# 247| 16: [Method] TestDivide # 247| -1: [TypeMention] Void # 248| 4: [BlockStmt] {...} # 249| 0: [TryStmt] try {...} ... @@ -337,7 +337,7 @@ exceptions.cs: # 270| 0: [TypeMention] Exception # 271| 1: [BlockStmt] {...} # 272| 0: [EmptyStmt] ; -# 276| 16: [Method] TestRemainder +# 276| 17: [Method] TestRemainder # 276| -1: [TypeMention] Void # 277| 4: [BlockStmt] {...} # 278| 0: [TryStmt] try {...} ... @@ -375,7 +375,7 @@ exceptions.cs: # 299| 0: [TypeMention] Exception # 300| 1: [BlockStmt] {...} # 301| 0: [EmptyStmt] ; -# 305| 17: [Method] TestMemberAccess +# 305| 18: [Method] TestMemberAccess # 305| -1: [TypeMention] Void # 306| 4: [BlockStmt] {...} # 307| 0: [TryStmt] try {...} ... @@ -412,7 +412,7 @@ exceptions.cs: # 328| 0: [TypeMention] Exception # 329| 1: [BlockStmt] {...} # 330| 0: [EmptyStmt] ; -# 334| 18: [Method] TestCast +# 334| 19: [Method] TestCast # 334| -1: [TypeMention] Void # 335| 4: [BlockStmt] {...} # 336| 0: [TryStmt] try {...} ... @@ -451,7 +451,7 @@ exceptions.cs: # 357| 0: [TypeMention] Exception # 358| 1: [BlockStmt] {...} # 359| 0: [EmptyStmt] ; -# 363| 19: [Method] TestThrow +# 363| 20: [Method] TestThrow # 363| -1: [TypeMention] Void # 364| 4: [BlockStmt] {...} # 365| 0: [TryStmt] try {...} ... @@ -490,7 +490,7 @@ exceptions.cs: # 387| 0: [TypeMention] Exception # 388| 1: [BlockStmt] {...} # 389| 0: [EmptyStmt] ; -# 393| 20: [Method] TestUnaryOperation +# 393| 21: [Method] TestUnaryOperation # 393| -1: [TypeMention] Void # 394| 4: [BlockStmt] {...} # 395| 0: [TryStmt] try {...} ... @@ -529,7 +529,7 @@ exceptions.cs: # 417| 0: [TypeMention] Exception # 418| 1: [BlockStmt] {...} # 419| 0: [EmptyStmt] ; -# 423| 21: [Method] TestRethrow +# 423| 22: [Method] TestRethrow # 423| -1: [TypeMention] Void # 424| 4: [BlockStmt] {...} # 425| 0: [TryStmt] try {...} ... @@ -548,7 +548,7 @@ exceptions.cs: # 440| 2: [GeneralCatchClause] catch {...} # 441| 1: [BlockStmt] {...} # 442| 0: [EmptyStmt] ; -# 446| 22: [Method] TestSubtypeCast +# 446| 23: [Method] TestSubtypeCast # 446| -1: [TypeMention] Void # 447| 4: [BlockStmt] {...} # 448| 0: [TryStmt] try {...} ... @@ -577,7 +577,7 @@ exceptions.cs: # 458| 0: [TypeMention] Exception # 459| 1: [BlockStmt] {...} # 460| 0: [EmptyStmt] ; -# 464| 23: [Method] TestDivideMaybeZero +# 464| 24: [Method] TestDivideMaybeZero # 464| -1: [TypeMention] Void #-----| 2: (Parameters) # 464| 0: [Parameter] i diff --git a/csharp/ql/test/library-tests/expressions/PrintAst.expected b/csharp/ql/test/library-tests/expressions/PrintAst.expected index bee0a1e429c..208ea388114 100644 --- a/csharp/ql/test/library-tests/expressions/PrintAst.expected +++ b/csharp/ql/test/library-tests/expressions/PrintAst.expected @@ -1,6 +1,6 @@ FoldedLiterals.cs: # 1| [Class] FoldedLiterals -# 3| 5: [Method] Test +# 3| 6: [Method] Test # 3| -1: [TypeMention] Void # 4| 4: [BlockStmt] {...} # 6| 0: [LocalVariableDeclStmt] ... ...; @@ -338,7 +338,7 @@ FoldedLiterals.cs: # 77| 0: [DecimalLiteral] 11 MethodAccess.cs: # 3| [Class] MethodAccess -# 5| 5: [Method] M +# 5| 6: [Method] M # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalFunctionStmt] M1(...) @@ -374,29 +374,29 @@ MethodAccess.cs: # 12| 0: [MethodAccess] access to method M3 # 12| -1: [TypeAccess] access to type MethodAccess # 12| 0: [TypeMention] MethodAccess -# 15| 6: [Method] M2 +# 15| 7: [Method] M2 # 15| -1: [TypeMention] Void # 15| 4: [BlockStmt] {...} -# 17| 7: [Method] M3 +# 17| 8: [Method] M3 # 17| -1: [TypeMention] Void # 17| 4: [BlockStmt] {...} Qualifiers.cs: # 3| [Class] Qualifiers -# 5| 5: [Property] S +# 5| 6: [Property] S # 5| -1: [TypeMention] short # 5| 3: [Getter] get_S # 5| 4: [MethodCall] call to method Static # 5| 0: [NullLiteral] null -# 7| 6: [Property] I +# 7| 7: [Property] I # 7| -1: [TypeMention] int # 7| 3: [Getter] get_I # 7| 4: [MethodCall] call to method Instance -# 9| 7: [Property] B +# 9| 8: [Property] B # 9| -1: [TypeMention] bool # 9| 3: [Getter] get_B # 9| 4: [MethodCall] call to method Instance # 9| -1: [ThisAccess] this access -# 11| 9: [Method] Static`1 +# 11| 10: [Method] Static`1 # 11| -1: [TypeMention] T #-----| 1: (Type parameters) # 11| 0: [TypeParameter] T @@ -406,7 +406,7 @@ Qualifiers.cs: # 11| 4: [DefaultValueExpr] default(...) # 11| 0: [TypeAccess] access to type T # 11| 0: [TypeMention] T -# 13| 12: [Method] Instance`1 +# 13| 13: [Method] Instance`1 # 13| -1: [TypeMention] T #-----| 1: (Type parameters) # 13| 0: [TypeParameter] T @@ -415,7 +415,7 @@ Qualifiers.cs: # 13| 0: [TypeMention] T ReducedExpression.cs: # 2| [Class] ReducedClass -# 5| 5: [Field] ReducedExpression +# 5| 6: [Field] ReducedExpression # 5| -1: [TypeMention] int # 5| 1: [ConditionalExpr] ... ? ... : ... # 5| 0: [BoolLiteral] true @@ -424,7 +424,7 @@ ReducedExpression.cs: expressions.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] Class -# 10| 4: [Method] MainLiterals +# 10| 5: [Method] MainLiterals # 10| -1: [TypeMention] Void # 11| 4: [BlockStmt] {...} # 12| 0: [LocalVariableDeclStmt] ... ...; @@ -514,7 +514,7 @@ expressions.cs: # 34| 0: [AssignExpr] ... = ... # 34| 0: [LocalVariableAccess] access to local variable o # 34| 1: [NullLiteral] null -# 37| 5: [Method] LogicalOperators +# 37| 6: [Method] LogicalOperators # 37| -1: [TypeMention] bool #-----| 2: (Parameters) # 37| 0: [Parameter] a @@ -546,15 +546,15 @@ expressions.cs: # 41| 1: [ParameterAccess] access to parameter b # 41| 1: [LogicalNotExpr] !... # 41| 0: [LocalVariableAccess] access to local variable c -# 44| 6: [Field] constant +# 44| 7: [Field] constant # 44| -1: [TypeMention] string # 44| 1: [StringLiteralUtf16] "constant" -# 45| 7: [Field] f +# 45| 8: [Field] f # 45| -1: [TypeMention] int # 45| 1: [IntLiteral] 0 -# 46| 8: [Field] name +# 46| 9: [Field] name # 46| -1: [TypeMention] string -# 48| 9: [StaticConstructor] Class +# 48| 10: [StaticConstructor] Class # 49| 4: [BlockStmt] {...} # 51| 0: [ExprStmt] ...; # 51| 0: [AssignExpr] ... = ... @@ -568,19 +568,19 @@ expressions.cs: # 52| 0: [TypeMention] Class # 53| 2: [ExprStmt] ...; # 53| 0: [MethodCall] call to method Foo -# 56| 10: [InstanceConstructor] Class +# 56| 11: [InstanceConstructor] Class # 56| 3: [ConstructorInitializer] call to constructor Class # 56| 0: [IntLiteral] 0 # 56| 4: [BlockStmt] {...} -# 58| 11: [InstanceConstructor] Class +# 58| 12: [InstanceConstructor] Class #-----| 2: (Parameters) # 58| 0: [Parameter] i # 58| -1: [TypeMention] int # 58| 4: [BlockStmt] {...} -# 60| 12: [Method] Foo +# 60| 13: [Method] Foo # 60| -1: [TypeMention] Void # 60| 4: [BlockStmt] {...} -# 62| 13: [Method] Bar +# 62| 14: [Method] Bar # 62| -1: [TypeMention] int #-----| 2: (Parameters) # 62| 0: [Parameter] x @@ -593,7 +593,7 @@ expressions.cs: # 64| 0: [PropertyCall] access to property Length # 64| -1: [ParameterAccess] access to parameter s # 64| 1: [ParameterAccess] access to parameter x -# 67| 14: [Property] Name +# 67| 15: [Property] Name # 67| -1: [TypeMention] string # 69| 3: [Getter] get_Name # 69| 4: [BlockStmt] {...} @@ -607,7 +607,7 @@ expressions.cs: # 70| 0: [AssignExpr] ... = ... # 70| 0: [FieldAccess] access to field name # 70| 1: [ParameterAccess] access to parameter value -# 73| 15: [Indexer] Item +# 73| 16: [Indexer] Item # 73| -1: [TypeMention] bool #-----| 1: (Parameters) # 73| 0: [Parameter] i @@ -638,7 +638,7 @@ expressions.cs: # 76| 1: [ExprStmt] ...; # 76| 0: [PostIncrExpr] ...++ # 76| 0: [FieldAccess] access to field f -# 79| 16: [Method] MainAccesses +# 79| 17: [Method] MainAccesses # 79| -1: [TypeMention] Void #-----| 2: (Parameters) # 79| 0: [Parameter] other @@ -718,7 +718,7 @@ expressions.cs: # 89| -1: [LocalVariableAccess] access to local variable inlinearray # 89| 0: [IntLiteral] 2 # 89| 1: [IntLiteral] 7 -# 92| 17: [Method] MainIsAsCast +# 92| 18: [Method] MainIsAsCast # 92| -1: [TypeMention] Void #-----| 2: (Parameters) # 92| 0: [Parameter] s @@ -780,14 +780,14 @@ expressions.cs: # 101| 1: [StringLiteralUtf16] " " # 101| 1: [CastExpr] (...) ... # 101| 1: [LocalVariableAccess] access to local variable i -# 104| 18: [Class] Y`2 +# 104| 19: [Class] Y`2 #-----| 1: (Type parameters) # 104| 0: [TypeParameter] T # 104| 1: [TypeParameter] U -# 108| 20: [Class] X`1 +# 108| 21: [Class] X`1 #-----| 1: (Type parameters) # 108| 0: [TypeParameter] T -# 111| 5: [Method] PrintTypes +# 111| 6: [Method] PrintTypes # 111| -1: [TypeMention] Void # 112| 4: [BlockStmt] {...} # 113| 0: [LocalVariableDeclStmt] ... ...; @@ -840,17 +840,17 @@ expressions.cs: # 125| 1: [DefaultValueExpr] default(...) # 125| 0: [TypeAccess] access to type T # 125| 0: [TypeMention] T -# 130| 21: [Class] Nested +# 130| 22: [Class] Nested #-----| 3: (Base types) # 130| 0: [TypeMention] Class -# 132| 4: [StaticConstructor] Nested +# 132| 5: [StaticConstructor] Nested # 132| 4: [BlockStmt] {...} -# 133| 5: [InstanceConstructor] Nested +# 133| 6: [InstanceConstructor] Nested #-----| 2: (Parameters) # 133| 0: [Parameter] b # 133| -1: [TypeMention] bool # 133| 4: [BlockStmt] {...} -# 134| 6: [InstanceConstructor] Nested +# 134| 7: [InstanceConstructor] Nested #-----| 2: (Parameters) # 134| 0: [Parameter] i # 134| -1: [TypeMention] int @@ -859,7 +859,7 @@ expressions.cs: # 134| 0: [ParameterAccess] access to parameter i # 134| 1: [IntLiteral] 1 # 134| 4: [BlockStmt] {...} -# 136| 7: [Method] OtherAccesses +# 136| 8: [Method] OtherAccesses # 136| -1: [TypeMention] Void # 137| 4: [BlockStmt] {...} # 138| 0: [ExprStmt] ...; @@ -880,7 +880,7 @@ expressions.cs: # 139| 4: [CastExpr] (...) ... # 139| 1: [IntLiteral] 4 # 139| 5: [StringLiteralUtf16] "" -# 144| 22: [Method] MainLocalVarDecl +# 144| 23: [Method] MainLocalVarDecl # 144| -1: [TypeMention] Void # 145| 4: [BlockStmt] {...} # 146| 0: [LocalVariableDeclStmt] ... ...; @@ -918,7 +918,7 @@ expressions.cs: # 151| -1: [TypeMention] string # 151| 0: [LocalVariableAccess] access to local variable y # 151| 1: [StringLiteralUtf16] "test" -# 154| 23: [Method] MainLocalConstDecl +# 154| 24: [Method] MainLocalConstDecl # 154| -1: [TypeMention] Void # 155| 4: [BlockStmt] {...} # 156| 0: [LocalConstantDeclStmt] const ... ...; @@ -944,7 +944,7 @@ expressions.cs: # 158| 1: [LocalVariableAccess] access to local variable r # 158| 1: [CastExpr] (...) ... # 158| 1: [LocalVariableAccess] access to local variable r -# 161| 24: [Method] MainChecked +# 161| 25: [Method] MainChecked # 161| -1: [TypeMention] Void # 162| 4: [BlockStmt] {...} # 163| 0: [LocalVariableDeclStmt] ... ...; @@ -961,7 +961,7 @@ expressions.cs: # 164| 0: [AddExpr] ... + ... # 164| 0: [FieldAccess] access to field f # 164| 1: [IntLiteral] 20 -# 167| 25: [Method] MainElementAccess +# 167| 26: [Method] MainElementAccess # 167| -1: [TypeMention] Void #-----| 2: (Parameters) # 167| 0: [Parameter] i @@ -978,7 +978,7 @@ expressions.cs: # 169| -1: [ArrayInitializer] { ..., ... } # 169| 0: [CastExpr] (...) ... # 169| 1: [ParameterAccess] access to parameter i -# 172| 26: [Method] MainDelegateAndMethodAccesses +# 172| 27: [Method] MainDelegateAndMethodAccesses # 172| -1: [TypeMention] Void # 173| 4: [BlockStmt] {...} # 174| 0: [LocalVariableDeclStmt] ... ...; @@ -1127,26 +1127,26 @@ expressions.cs: # 205| 0: [Parameter] x # 205| -1: [TypeMention] int # 207| 4: [Class] C -# 210| 5: [Method] M1 +# 210| 6: [Method] M1 # 210| -1: [TypeMention] Void #-----| 2: (Parameters) # 210| 0: [Parameter] i # 210| -1: [TypeMention] int # 210| 4: [BlockStmt] {...} -# 211| 6: [Method] M2 +# 211| 7: [Method] M2 # 211| -1: [TypeMention] Void #-----| 2: (Parameters) # 211| 0: [Parameter] i # 211| -1: [TypeMention] int # 211| 4: [BlockStmt] {...} -# 212| 7: [Method] M3 +# 212| 8: [Method] M3 # 212| -1: [TypeMention] Void #-----| 2: (Parameters) # 212| 0: [Parameter] i # 212| -1: [TypeMention] int # 212| 4: [BlockStmt] {...} # 216| 5: [Class] X -# 219| 5: [Method] F +# 219| 6: [Method] F # 219| -1: [TypeMention] bool #-----| 2: (Parameters) # 219| 0: [Parameter] i @@ -1156,7 +1156,7 @@ expressions.cs: # 219| 0: [LTExpr] ... < ... # 219| 0: [ParameterAccess] access to parameter i # 219| 1: [IntLiteral] 2 -# 221| 6: [Method] G +# 221| 7: [Method] G # 221| -1: [TypeMention] bool #-----| 2: (Parameters) # 221| 0: [Parameter] s @@ -1171,7 +1171,7 @@ expressions.cs: # 225| 1: [Parameter] e # 225| -1: [TypeMention] object # 227| 7: [Class] Button -# 230| 5: [Event] Click +# 230| 6: [Event] Click # 230| -1: [TypeMention] EventHandler # 230| 3: [AddEventAccessor] add_Click #-----| 2: (Parameters) @@ -1179,7 +1179,7 @@ expressions.cs: # 230| 4: [RemoveEventAccessor] remove_Click #-----| 2: (Parameters) # 230| 0: [Parameter] value -# 232| 6: [Method] OnClick +# 232| 7: [Method] OnClick # 232| -1: [TypeMention] Void #-----| 2: (Parameters) # 232| 0: [Parameter] e @@ -1194,7 +1194,7 @@ expressions.cs: # 235| -1: [EventAccess,EventCall] access to event Click # 235| 0: [ThisAccess] this access # 235| 1: [ParameterAccess] access to parameter e -# 238| 7: [Method] Reset +# 238| 8: [Method] Reset # 238| -1: [TypeMention] Void # 239| 4: [BlockStmt] {...} # 240| 0: [ExprStmt] ...; @@ -1202,11 +1202,11 @@ expressions.cs: # 240| 0: [EventAccess,EventCall] access to event Click # 240| 1: [NullLiteral] null # 244| 8: [Class] LoginDialog -# 247| 4: [Field] OkButton +# 247| 5: [Field] OkButton # 247| -1: [TypeMention] Button -# 248| 5: [Field] CancelButton +# 248| 6: [Field] CancelButton # 248| -1: [TypeMention] Button -# 250| 6: [InstanceConstructor] LoginDialog +# 250| 7: [InstanceConstructor] LoginDialog # 251| 4: [BlockStmt] {...} # 252| 0: [ExprStmt] ...; # 252| 0: [AssignExpr] ... = ... @@ -1232,7 +1232,7 @@ expressions.cs: # 255| 1: [ExplicitDelegateCreation] delegate creation of type EventHandler # 255| -1: [TypeMention] EventHandler # 255| 0: [MethodAccess] access to method CancelButtonClick -# 258| 7: [Method] OkButtonClick +# 258| 8: [Method] OkButtonClick # 258| -1: [TypeMention] Void #-----| 2: (Parameters) # 258| 0: [Parameter] sender @@ -1240,7 +1240,7 @@ expressions.cs: # 258| 1: [Parameter] e # 258| -1: [TypeMention] object # 259| 4: [BlockStmt] {...} -# 262| 8: [Method] CancelButtonClick +# 262| 9: [Method] CancelButtonClick # 262| -1: [TypeMention] Void #-----| 2: (Parameters) # 262| 0: [Parameter] sender @@ -1249,18 +1249,18 @@ expressions.cs: # 262| -1: [TypeMention] object # 263| 4: [BlockStmt] {...} # 268| 9: [Class] IntVector -# 271| 4: [InstanceConstructor] IntVector +# 271| 5: [InstanceConstructor] IntVector #-----| 2: (Parameters) # 271| 0: [Parameter] length # 271| -1: [TypeMention] int # 271| 4: [BlockStmt] {...} -# 273| 5: [Property] Length +# 273| 6: [Property] Length # 273| -1: [TypeMention] int # 273| 3: [Getter] get_Length # 273| 4: [BlockStmt] {...} # 273| 0: [ReturnStmt] return ...; # 273| 0: [IntLiteral] 4 -# 275| 6: [Indexer] Item +# 275| 7: [Indexer] Item # 275| -1: [TypeMention] int #-----| 1: (Parameters) # 275| 0: [Parameter] index @@ -1276,7 +1276,7 @@ expressions.cs: # 275| 0: [Parameter] index # 275| 1: [Parameter] value # 275| 4: [BlockStmt] {...} -# 277| 7: [IncrementOperator] ++ +# 277| 8: [IncrementOperator] ++ # 277| -1: [TypeMention] IntVector #-----| 2: (Parameters) # 277| 0: [Parameter] iv @@ -1313,7 +1313,7 @@ expressions.cs: # 281| 1: [IntLiteral] 1 # 282| 2: [ReturnStmt] return ...; # 282| 0: [LocalVariableAccess] access to local variable temp -# 285| 8: [AddOperator] + +# 285| 9: [AddOperator] + # 285| -1: [TypeMention] IntVector #-----| 2: (Parameters) # 285| 0: [Parameter] iv1 @@ -1324,7 +1324,7 @@ expressions.cs: # 287| 0: [ReturnStmt] return ...; # 287| 0: [ParameterAccess] access to parameter iv1 # 292| 10: [Class] TestUnaryOperator -# 295| 5: [Method] MainUnaryOperator +# 295| 6: [Method] MainUnaryOperator # 295| -1: [TypeMention] Void # 296| 4: [BlockStmt] {...} # 297| 0: [LocalVariableDeclStmt] ... ...; @@ -1355,9 +1355,9 @@ expressions.cs: # 301| 0: [LocalVariableAccess] access to local variable iv1 # 301| 1: [LocalVariableAccess] access to local variable iv2 # 306| 11: [Struct] Digit -# 309| 5: [Field] value +# 309| 6: [Field] value # 309| -1: [TypeMention] byte -# 311| 6: [InstanceConstructor] Digit +# 311| 7: [InstanceConstructor] Digit #-----| 2: (Parameters) # 311| 0: [Parameter] value # 311| -1: [TypeMention] byte @@ -1380,7 +1380,7 @@ expressions.cs: # 315| 0: [FieldAccess] access to field value # 315| -1: [ThisAccess] this access # 315| 1: [ParameterAccess] access to parameter value -# 318| 7: [ImplicitConversionOperator] implicit conversion +# 318| 8: [ImplicitConversionOperator] implicit conversion # 318| -1: [TypeMention] byte #-----| 2: (Parameters) # 318| 0: [Parameter] d @@ -1389,7 +1389,7 @@ expressions.cs: # 320| 0: [ReturnStmt] return ...; # 320| 0: [FieldAccess] access to field value # 320| -1: [ParameterAccess] access to parameter d -# 323| 8: [ExplicitConversionOperator] explicit conversion +# 323| 9: [ExplicitConversionOperator] explicit conversion # 323| -1: [TypeMention] Digit #-----| 2: (Parameters) # 323| 0: [Parameter] b @@ -1400,7 +1400,7 @@ expressions.cs: # 325| -1: [TypeMention] Digit # 325| 0: [ParameterAccess] access to parameter b # 330| 12: [Class] TestConversionOperator -# 333| 5: [Method] MainConversionOperator +# 333| 6: [Method] MainConversionOperator # 333| -1: [TypeMention] Void # 334| 4: [BlockStmt] {...} # 335| 0: [LocalVariableDeclStmt] ... ...; @@ -1418,11 +1418,11 @@ expressions.cs: # 336| 1: [OperatorCall] call to operator implicit conversion # 336| 0: [LocalVariableAccess] access to local variable d # 341| 13: [Class] Point -# 344| 5: [Field] x +# 344| 6: [Field] x # 344| -1: [TypeMention] int -# 344| 6: [Field] y +# 344| 7: [Field] y # 344| -1: [TypeMention] int -# 346| 7: [Property] X +# 346| 8: [Property] X # 346| -1: [TypeMention] int # 346| 3: [Getter] get_X # 346| 4: [BlockStmt] {...} @@ -1436,7 +1436,7 @@ expressions.cs: # 346| 0: [AssignExpr] ... = ... # 346| 0: [FieldAccess] access to field x # 346| 1: [ParameterAccess] access to parameter value -# 347| 8: [Property] Y +# 347| 9: [Property] Y # 347| -1: [TypeMention] int # 347| 3: [Getter] get_Y # 347| 4: [BlockStmt] {...} @@ -1451,11 +1451,11 @@ expressions.cs: # 347| 0: [FieldAccess] access to field y # 347| 1: [ParameterAccess] access to parameter value # 351| 14: [Class] Rectangle -# 354| 5: [Field] p1 +# 354| 6: [Field] p1 # 354| -1: [TypeMention] Point -# 354| 6: [Field] p2 +# 354| 7: [Field] p2 # 354| -1: [TypeMention] Point -# 356| 7: [Property] P1 +# 356| 8: [Property] P1 # 356| -1: [TypeMention] Point # 356| 3: [Getter] get_P1 # 356| 4: [BlockStmt] {...} @@ -1469,7 +1469,7 @@ expressions.cs: # 356| 0: [AssignExpr] ... = ... # 356| 0: [FieldAccess] access to field p1 # 356| 1: [ParameterAccess] access to parameter value -# 357| 8: [Property] P2 +# 357| 9: [Property] P2 # 357| -1: [TypeMention] Point # 357| 3: [Getter] get_P2 # 357| 4: [BlockStmt] {...} @@ -1484,36 +1484,36 @@ expressions.cs: # 357| 0: [FieldAccess] access to field p2 # 357| 1: [ParameterAccess] access to parameter value # 361| 15: [Class] Rectangle2 -# 364| 5: [Field] p1 +# 364| 6: [Field] p1 # 364| -1: [TypeMention] Point # 364| 1: [ObjectCreation] object creation of type Point # 364| 0: [TypeMention] Point -# 365| 6: [Field] p2 +# 365| 7: [Field] p2 # 365| -1: [TypeMention] Point # 365| 1: [ObjectCreation] object creation of type Point # 365| 0: [TypeMention] Point -# 367| 7: [Property] P1 +# 367| 8: [Property] P1 # 367| -1: [TypeMention] Point # 367| 3: [Getter] get_P1 # 367| 4: [BlockStmt] {...} # 367| 0: [ReturnStmt] return ...; # 367| 0: [FieldAccess] access to field p1 -# 368| 8: [Property] P2 +# 368| 9: [Property] P2 # 368| -1: [TypeMention] Point # 368| 3: [Getter] get_P2 # 368| 4: [BlockStmt] {...} # 368| 0: [ReturnStmt] return ...; # 368| 0: [FieldAccess] access to field p2 # 372| 16: [Class] Contact -# 375| 5: [Field] name +# 375| 6: [Field] name # 375| -1: [TypeMention] string -# 376| 6: [Field] phoneNumbers +# 376| 7: [Field] phoneNumbers # 376| -1: [TypeMention] List # 376| 1: [TypeMention] string # 376| 1: [ObjectCreation] object creation of type List # 376| 0: [TypeMention] List # 376| 1: [TypeMention] string -# 378| 7: [Property] Name +# 378| 8: [Property] Name # 378| -1: [TypeMention] string # 378| 3: [Getter] get_Name # 378| 4: [BlockStmt] {...} @@ -1527,7 +1527,7 @@ expressions.cs: # 378| 0: [AssignExpr] ... = ... # 378| 0: [FieldAccess] access to field name # 378| 1: [ParameterAccess] access to parameter value -# 379| 8: [Property] PhoneNumbers +# 379| 9: [Property] PhoneNumbers # 379| -1: [TypeMention] List # 379| 1: [TypeMention] string # 379| 3: [Getter] get_PhoneNumbers @@ -1535,7 +1535,7 @@ expressions.cs: # 379| 0: [ReturnStmt] return ...; # 379| 0: [FieldAccess] access to field phoneNumbers # 383| 17: [Class] TestCreations -# 386| 5: [Method] MainCreations +# 386| 6: [Method] MainCreations # 386| -1: [TypeMention] Void # 387| 4: [BlockStmt] {...} # 388| 0: [LocalVariableDeclStmt] ... ...; @@ -1827,14 +1827,14 @@ expressions.cs: # 430| 0: [EQExpr] ... == ... # 430| 0: [LocalVariableAccess] access to local variable i # 430| 1: [IntLiteral] 2 -# 433| 6: [DelegateType] S +# 433| 7: [DelegateType] S #-----| 2: (Parameters) # 433| 0: [Parameter] x # 433| -1: [TypeMention] int # 433| 1: [Parameter] y # 433| -1: [TypeMention] int -# 434| 7: [DelegateType] Unit -# 436| 8: [Method] MultiDimensionalArrayCreations +# 434| 8: [DelegateType] Unit +# 436| 9: [Method] MultiDimensionalArrayCreations # 436| -1: [TypeMention] Void # 437| 4: [BlockStmt] {...} # 438| 0: [LocalVariableDeclStmt] ... ...; @@ -1994,7 +1994,7 @@ expressions.cs: # 445| 0: [IntLiteral] 1 # 445| 1: [IntLiteral] 2 # 445| 2: [IntLiteral] 3 -# 448| 9: [Method] MainAnonymousFunctions +# 448| 10: [Method] MainAnonymousFunctions # 448| -1: [TypeMention] Void # 449| 4: [BlockStmt] {...} # 450| 0: [LocalVariableDeclStmt] ... ...; @@ -2108,7 +2108,7 @@ expressions.cs: # 458| 0: [LocalVariableAccess] access to local variable j # 458| 1: [IntLiteral] 1 # 463| 18: [Class] OperatorCalls -# 465| 5: [Method] delegateCombine +# 465| 6: [Method] delegateCombine # 465| -1: [TypeMention] Void #-----| 2: (Parameters) # 465| 0: [Parameter] fun @@ -2123,7 +2123,7 @@ expressions.cs: # 468| 0: [AssignAddExpr] ... += ... # 468| 0: [LocalVariableAccess] access to local variable PropertyChanged # 468| 1: [ParameterAccess] access to parameter fun -# 471| 6: [Method] addition +# 471| 7: [Method] addition # 471| -1: [TypeMention] Num #-----| 2: (Parameters) # 471| 0: [Parameter] a @@ -2146,10 +2146,10 @@ expressions.cs: # 474| 1: [ParameterAccess] access to parameter c # 475| 2: [ReturnStmt] return ...; # 475| 0: [LocalVariableAccess] access to local variable result -# 477| 7: [Class] Num -# 479| 4: [Field] value +# 477| 8: [Class] Num +# 479| 5: [Field] value # 479| -1: [TypeMention] int -# 481| 5: [InstanceConstructor] Num +# 481| 6: [InstanceConstructor] Num #-----| 2: (Parameters) # 481| 0: [Parameter] value # 481| -1: [TypeMention] int @@ -2159,7 +2159,7 @@ expressions.cs: # 483| 0: [FieldAccess] access to field value # 483| -1: [ThisAccess] this access # 483| 1: [ParameterAccess] access to parameter value -# 486| 6: [AddOperator] + +# 486| 7: [AddOperator] + # 486| -1: [TypeMention] Num #-----| 2: (Parameters) # 486| 0: [Parameter] c1 @@ -2175,12 +2175,12 @@ expressions.cs: # 488| -1: [ParameterAccess] access to parameter c1 # 488| 1: [FieldAccess] access to field value # 488| -1: [ParameterAccess] access to parameter c2 -# 492| 8: [DelegateType] MyDelegate +# 492| 9: [DelegateType] MyDelegate #-----| 2: (Parameters) # 492| 0: [Parameter] e # 492| -1: [TypeMention] string # 495| 19: [Class] ExpressionDepth -# 497| 5: [Field] d +# 497| 6: [Field] d # 497| -1: [TypeMention] int # 497| 1: [AddExpr] ... + ... # 497| 0: [AddExpr] ... + ... @@ -2342,7 +2342,7 @@ expressions.cs: # 498| 1: [IntLiteral] 1 # 498| 1: [IntLiteral] 1 # 501| 20: [Class] TupleExprs -# 503| 5: [Method] Test +# 503| 6: [Method] Test # 503| -1: [TypeMention] Void # 504| 4: [BlockStmt] {...} # 505| 0: [LocalVariableDeclStmt] ... ...; @@ -2390,28 +2390,28 @@ expressions.cs: # 512| 1: [DefaultAttribute] [InlineArray(...)] # 512| -1: [TypeMention] InlineArrayAttribute # 512| 0: [IntLiteral] 10 -# 515| 5: [Field] myInlineArrayElements +# 515| 6: [Field] myInlineArrayElements # 515| -1: [TypeMention] int # 518| 22: [Class] ClassC1 -# 518| 4: [InstanceConstructor,PrimaryConstructor] ClassC1 +# 518| 5: [InstanceConstructor,PrimaryConstructor] ClassC1 #-----| 2: (Parameters) # 518| 0: [Parameter] oc1 # 518| -1: [TypeMention] object # 520| 23: [Class] ClassC2 #-----| 3: (Base types) # 520| 0: [TypeMention] ClassC1 -# 520| 4: [InstanceConstructor,PrimaryConstructor] ClassC2 +# 520| 5: [InstanceConstructor,PrimaryConstructor] ClassC2 #-----| 2: (Parameters) # 520| 0: [Parameter] oc2 # 520| -1: [TypeMention] object # 520| 3: [ConstructorInitializer] call to constructor ClassC1 # 520| 0: [ParameterAccess] access to parameter oc2 # 522| 24: [Class] SuppressNullableWarning -# 525| 5: [Method] Api +# 525| 6: [Method] Api # 525| -1: [TypeMention] object # 525| 4: [ObjectCreation] object creation of type Object # 525| 0: [TypeMention] object -# 527| 6: [Method] Test +# 527| 7: [Method] Test # 527| -1: [TypeMention] Void #-----| 2: (Parameters) # 527| 0: [Parameter] arg0 diff --git a/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected b/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected index c85d73bd7f7..8030da8c4fa 100644 --- a/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected +++ b/csharp/ql/test/library-tests/expressions/QualifiableExpr.expected @@ -1,12 +1,17 @@ +| FoldedLiterals.cs:1:7:1:20 | call to method | FoldedLiterals.cs:1:7:1:20 | this access | +| MethodAccess.cs:3:7:3:18 | call to method | MethodAccess.cs:3:7:3:18 | this access | | MethodAccess.cs:8:20:8:21 | access to local function M1 | MethodAccess.cs:8:20:8:21 | this access | | MethodAccess.cs:9:13:9:14 | access to method M2 | MethodAccess.cs:9:13:9:14 | this access | | MethodAccess.cs:10:13:10:19 | access to method M2 | MethodAccess.cs:10:13:10:16 | this access | | MethodAccess.cs:12:13:12:27 | access to method M3 | MethodAccess.cs:12:13:12:24 | access to type MethodAccess | +| Qualifiers.cs:3:7:3:16 | call to method | Qualifiers.cs:3:7:3:16 | this access | | Qualifiers.cs:7:21:7:35 | call to method Instance | Qualifiers.cs:7:21:7:35 | this access | | Qualifiers.cs:9:22:9:42 | call to method Instance | Qualifiers.cs:9:22:9:25 | this access | +| ReducedExpression.cs:2:7:2:18 | call to method | ReducedExpression.cs:2:7:2:18 | this access | | expressions.cs:45:20:45:20 | access to field f | expressions.cs:45:20:45:20 | this access | | expressions.cs:51:13:51:34 | access to field name | expressions.cs:51:13:51:29 | access to type Class | | expressions.cs:52:13:52:23 | call to method Foo | expressions.cs:52:13:52:17 | access to type Class | +| expressions.cs:58:19:58:23 | call to method | expressions.cs:58:19:58:23 | this access | | expressions.cs:64:20:64:27 | access to property Length | expressions.cs:64:20:64:20 | access to parameter s | | expressions.cs:75:35:75:46 | call to method Equals | expressions.cs:75:35:75:35 | access to parameter s | | expressions.cs:76:30:76:30 | access to field f | expressions.cs:76:30:76:30 | this access | @@ -20,6 +25,10 @@ | expressions.cs:85:41:85:51 | access to indexer | expressions.cs:85:41:85:44 | this access | | expressions.cs:87:13:87:20 | access to array element | expressions.cs:87:13:87:17 | access to local variable array | | expressions.cs:89:13:89:26 | access to array element | expressions.cs:89:13:89:23 | access to local variable inlinearray | +| expressions.cs:104:15:104:15 | call to method | expressions.cs:104:15:104:15 | this access | +| expressions.cs:108:15:108:15 | call to method | expressions.cs:108:15:108:15 | this access | +| expressions.cs:133:13:133:18 | call to method | expressions.cs:133:13:133:18 | this access | +| expressions.cs:134:13:134:18 | call to method | expressions.cs:134:13:134:18 | this access | | expressions.cs:138:17:138:22 | access to field f | expressions.cs:138:17:138:20 | this access | | expressions.cs:139:17:139:55 | call to method MainAccesses | expressions.cs:139:17:139:20 | base access | | expressions.cs:149:13:149:40 | call to method WriteLine | expressions.cs:149:13:149:19 | access to type Console | @@ -33,9 +42,13 @@ | expressions.cs:191:36:191:38 | access to method G | expressions.cs:191:36:191:36 | access to type X | | expressions.cs:198:25:198:37 | access to local function LocalFunction | expressions.cs:198:25:198:37 | this access | | expressions.cs:199:19:199:31 | access to local function LocalFunction | expressions.cs:199:19:199:31 | this access | +| expressions.cs:207:11:207:11 | call to method | expressions.cs:207:11:207:11 | this access | +| expressions.cs:216:18:216:18 | call to method | expressions.cs:216:18:216:18 | this access | +| expressions.cs:227:18:227:23 | call to method | expressions.cs:227:18:227:23 | this access | | expressions.cs:234:17:234:21 | access to event Click | expressions.cs:234:17:234:21 | this access | | expressions.cs:235:17:235:21 | access to event Click | expressions.cs:235:17:235:21 | this access | | expressions.cs:240:13:240:17 | access to event Click | expressions.cs:240:13:240:17 | this access | +| expressions.cs:250:16:250:26 | call to method | expressions.cs:250:16:250:26 | this access | | expressions.cs:252:13:252:20 | access to field OkButton | expressions.cs:252:13:252:20 | this access | | expressions.cs:253:13:253:20 | access to field OkButton | expressions.cs:253:13:253:20 | this access | | expressions.cs:253:13:253:26 | access to event Click | expressions.cs:253:13:253:20 | access to field OkButton | @@ -44,30 +57,48 @@ | expressions.cs:255:13:255:24 | access to field CancelButton | expressions.cs:255:13:255:24 | this access | | expressions.cs:255:13:255:30 | access to event Click | expressions.cs:255:13:255:24 | access to field CancelButton | | expressions.cs:255:52:255:68 | access to method CancelButtonClick | expressions.cs:255:52:255:68 | this access | +| expressions.cs:271:16:271:24 | call to method | expressions.cs:271:16:271:24 | this access | | expressions.cs:279:44:279:52 | access to property Length | expressions.cs:279:44:279:45 | access to parameter iv | | expressions.cs:280:33:280:41 | access to property Length | expressions.cs:280:33:280:34 | access to parameter iv | | expressions.cs:281:17:281:23 | access to indexer | expressions.cs:281:17:281:20 | access to local variable temp | | expressions.cs:281:27:281:31 | access to indexer | expressions.cs:281:27:281:28 | access to parameter iv | +| expressions.cs:292:11:292:27 | call to method | expressions.cs:292:11:292:27 | this access | +| expressions.cs:306:19:306:23 | call to method | expressions.cs:306:19:306:23 | this access | +| expressions.cs:311:16:311:20 | call to method | expressions.cs:311:16:311:20 | this access | | expressions.cs:315:13:315:22 | access to field value | expressions.cs:315:13:315:16 | this access | | expressions.cs:320:20:320:26 | access to field value | expressions.cs:320:20:320:20 | access to parameter d | +| expressions.cs:330:11:330:32 | call to method | expressions.cs:330:11:330:32 | this access | +| expressions.cs:341:18:341:22 | call to method | expressions.cs:341:18:341:22 | this access | | expressions.cs:346:37:346:37 | access to field x | expressions.cs:346:37:346:37 | this access | | expressions.cs:346:48:346:48 | access to field x | expressions.cs:346:48:346:48 | this access | | expressions.cs:347:37:347:37 | access to field y | expressions.cs:347:37:347:37 | this access | | expressions.cs:347:48:347:48 | access to field y | expressions.cs:347:48:347:48 | this access | +| expressions.cs:351:18:351:26 | call to method | expressions.cs:351:18:351:26 | this access | | expressions.cs:356:40:356:41 | access to field p1 | expressions.cs:356:40:356:41 | this access | | expressions.cs:356:52:356:53 | access to field p1 | expressions.cs:356:52:356:53 | this access | | expressions.cs:357:40:357:41 | access to field p2 | expressions.cs:357:40:357:41 | this access | | expressions.cs:357:52:357:53 | access to field p2 | expressions.cs:357:52:357:53 | this access | +| expressions.cs:361:18:361:27 | call to method | expressions.cs:361:18:361:27 | this access | | expressions.cs:364:15:364:16 | access to field p1 | expressions.cs:364:15:364:16 | this access | | expressions.cs:365:15:365:16 | access to field p2 | expressions.cs:365:15:365:16 | this access | | expressions.cs:367:40:367:41 | access to field p1 | expressions.cs:367:40:367:41 | this access | | expressions.cs:368:40:368:41 | access to field p2 | expressions.cs:368:40:368:41 | this access | +| expressions.cs:372:18:372:24 | call to method | expressions.cs:372:18:372:24 | this access | | expressions.cs:376:22:376:33 | access to field phoneNumbers | expressions.cs:376:22:376:33 | this access | | expressions.cs:378:43:378:46 | access to field name | expressions.cs:378:43:378:46 | this access | | expressions.cs:378:57:378:60 | access to field name | expressions.cs:378:57:378:60 | this access | | expressions.cs:379:57:379:68 | access to field phoneNumbers | expressions.cs:379:57:379:68 | this access | +| expressions.cs:383:18:383:30 | call to method | expressions.cs:383:18:383:30 | this access | | expressions.cs:455:29:455:47 | call to method WriteLine | expressions.cs:455:29:455:35 | access to type Console | +| expressions.cs:463:11:463:23 | call to method | expressions.cs:463:11:463:23 | this access | +| expressions.cs:481:20:481:22 | call to method | expressions.cs:481:20:481:22 | this access | | expressions.cs:483:17:483:26 | access to field value | expressions.cs:483:17:483:20 | this access | | expressions.cs:488:32:488:39 | access to field value | expressions.cs:488:32:488:33 | access to parameter c1 | | expressions.cs:488:43:488:50 | access to field value | expressions.cs:488:43:488:44 | access to parameter c2 | +| expressions.cs:495:11:495:25 | call to method | expressions.cs:495:11:495:25 | this access | +| expressions.cs:501:11:501:20 | call to method | expressions.cs:501:11:501:20 | this access | +| expressions.cs:513:12:513:24 | call to method | expressions.cs:513:12:513:24 | this access | +| expressions.cs:518:11:518:17 | call to method | expressions.cs:518:11:518:17 | this access | +| expressions.cs:520:11:520:17 | call to method | expressions.cs:520:11:520:17 | this access | +| expressions.cs:522:11:522:33 | call to method | expressions.cs:522:11:522:33 | this access | | expressions.cs:530:21:530:25 | call to method Api | expressions.cs:530:21:530:25 | this access | diff --git a/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected b/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected index ae15431d964..0407c9b3e39 100644 --- a/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected +++ b/csharp/ql/test/library-tests/extension-method-call/ExtensionMethodCalls.expected @@ -1,6 +1,7 @@ methodCallTargets | methods.cs:14:60:14:73 | call to method Ext3`1 | methods.cs:14:28:14:34 | Ext3`1 | Ext3(T, int) | | methods.cs:16:60:16:74 | call to method Ext4`1 | methods.cs:16:28:16:34 | Ext4`1 | Ext4(T, int) | +| methods.cs:19:18:19:24 | call to method | methods.cs:19:18:19:24 | | () | | methods.cs:23:13:23:22 | call to method Ext0 | methods.cs:8:28:8:34 | Ext0 | Ext0(string, int) | | methods.cs:24:13:24:27 | call to method Ext0 | methods.cs:8:28:8:34 | Ext0 | Ext0(string, int) | | methods.cs:25:13:25:30 | call to method Ext0 | methods.cs:8:28:8:34 | Ext0 | Ext0(string, double) | diff --git a/csharp/ql/test/library-tests/fields/PrintAst.expected b/csharp/ql/test/library-tests/fields/PrintAst.expected index 4f33d662a06..e9e6ad49a2b 100644 --- a/csharp/ql/test/library-tests/fields/PrintAst.expected +++ b/csharp/ql/test/library-tests/fields/PrintAst.expected @@ -1,56 +1,56 @@ fields.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] A -# 10| 6: [Field] X +# 10| 7: [Field] X # 10| -1: [TypeMention] int # 10| 1: [IntLiteral] 1 -# 10| 7: [Field] Y +# 10| 8: [Field] Y # 10| -1: [TypeMention] int -# 10| 8: [Field] Z +# 10| 9: [Field] Z # 10| -1: [TypeMention] int # 10| 1: [IntLiteral] 100 # 13| 2: [Class] B -# 15| 6: [Field] X +# 15| 7: [Field] X # 15| -1: [TypeMention] int # 15| 1: [IntLiteral] 1 -# 16| 7: [Field] Y +# 16| 8: [Field] Y # 16| -1: [TypeMention] int -# 17| 8: [Field] Z +# 17| 9: [Field] Z # 17| -1: [TypeMention] int # 17| 1: [IntLiteral] 100 # 20| 3: [Class] C`1 #-----| 1: (Type parameters) # 20| 0: [TypeParameter] V -# 23| 5: [Field] count +# 23| 6: [Field] count # 23| -1: [TypeMention] int # 23| 1: [IntLiteral] 0 -# 25| 6: [InstanceConstructor] C +# 25| 7: [InstanceConstructor] C # 25| 4: [BlockStmt] {...} # 25| 0: [ExprStmt] ...; # 25| 0: [PostIncrExpr] ...++ # 25| 0: [FieldAccess] access to field count -# 27| 7: [Property] Count +# 27| 8: [Property] Count # 27| -1: [TypeMention] int # 27| 3: [Getter] get_Count # 27| 4: [BlockStmt] {...} # 27| 0: [ReturnStmt] return ...; # 27| 0: [FieldAccess] access to field count # 31| 4: [Class] Application -# 34| 6: [Field] finished +# 34| 7: [Field] finished # 34| -1: [TypeMention] bool -# 35| 7: [Field] x +# 35| 8: [Field] x # 35| -1: [TypeMention] double # 35| 1: [MethodCall] call to method Sqrt # 35| -1: [TypeAccess] access to type Math # 35| 0: [TypeMention] Math # 35| 0: [DoubleLiteral] 2 -# 36| 8: [Field] i +# 36| 9: [Field] i # 36| -1: [TypeMention] int # 36| 1: [IntLiteral] 100 -# 37| 9: [Field] s +# 37| 10: [Field] s # 37| -1: [TypeMention] string # 37| 1: [StringLiteralUtf16] "Hello" -# 39| 10: [Method] Main +# 39| 11: [Method] Main # 39| -1: [TypeMention] Void # 40| 4: [BlockStmt] {...} # 41| 0: [LocalVariableDeclStmt] ... ...; @@ -93,7 +93,7 @@ fields.cs: # 45| 0: [TypeMention] C # 45| 1: [TypeMention] int # 50| 5: [Class] Color -# 53| 5: [Field] Black +# 53| 6: [Field] Black # 53| -1: [TypeMention] Color # 53| 1: [ObjectCreation] object creation of type Color # 53| -1: [TypeMention] Color @@ -103,7 +103,7 @@ fields.cs: # 53| 1: [IntLiteral] 0 # 53| 2: [CastExpr] (...) ... # 53| 1: [IntLiteral] 0 -# 54| 6: [Field] White +# 54| 7: [Field] White # 54| -1: [TypeMention] Color # 54| 1: [ObjectCreation] object creation of type Color # 54| -1: [TypeMention] Color @@ -113,7 +113,7 @@ fields.cs: # 54| 1: [IntLiteral] 255 # 54| 2: [CastExpr] (...) ... # 54| 1: [IntLiteral] 255 -# 56| 7: [InstanceConstructor] Color +# 56| 8: [InstanceConstructor] Color #-----| 2: (Parameters) # 56| 0: [Parameter] r # 56| -1: [TypeMention] byte @@ -123,30 +123,30 @@ fields.cs: # 56| -1: [TypeMention] byte # 56| 4: [BlockStmt] {...} # 60| 6: [Class] TestBindings -# 63| 6: [Field] a +# 63| 7: [Field] a # 63| -1: [TypeMention] int # 63| 1: [AddExpr] ... + ... # 63| 0: [FieldAccess] access to field b # 63| 1: [IntLiteral] 1 -# 64| 7: [Field] b +# 64| 8: [Field] b # 64| -1: [TypeMention] int # 64| 1: [AddExpr] ... + ... # 64| 0: [FieldAccess] access to field a # 64| 1: [IntLiteral] 1 # 70| [NamespaceDeclaration] namespace ... { ... } # 72| 1: [Class] A -# 74| 5: [Field] X +# 74| 6: [Field] X # 74| -1: [TypeMention] int # 74| 1: [AddExpr] ... + ... # 74| 0: [MemberConstantAccess] access to constant Z # 74| -1: [TypeAccess] access to type B # 74| 0: [TypeMention] B # 74| 1: [IntLiteral] 1 -# 75| 6: [Field] Y +# 75| 7: [Field] Y # 75| -1: [TypeMention] int # 75| 1: [IntLiteral] 10 # 78| 2: [Class] B -# 80| 5: [Field] Z +# 80| 6: [Field] Z # 80| -1: [TypeMention] int # 80| 1: [AddExpr] ... + ... # 80| 0: [MemberConstantAccess] access to constant Y @@ -154,13 +154,13 @@ fields.cs: # 80| 0: [TypeMention] A # 80| 1: [IntLiteral] 1 # 83| 3: [Class] C -# 85| 4: [Field] Foo +# 85| 5: [Field] Foo # 85| -1: [TypeMention] int # 85| 1: [IntLiteral] 1 -# 86| 5: [Field] x +# 86| 6: [Field] x # 86| -1: [TypeMention] long? # 86| 1: [TypeMention] long -# 87| 6: [InstanceConstructor] C +# 87| 7: [InstanceConstructor] C # 88| 4: [BlockStmt] {...} # 89| 0: [ExprStmt] ...; # 89| 0: [AssignExpr] ... = ... @@ -191,12 +191,12 @@ fields.cs: # 92| 1: [CastExpr] (...) ... # 92| 1: [MemberConstantAccess] access to constant Foo # 96| 4: [Class] D -# 98| 4: [InstanceConstructor] D +# 98| 5: [InstanceConstructor] D #-----| 2: (Parameters) # 98| 0: [Parameter] d # 98| -1: [TypeMention] int # 99| 4: [BlockStmt] {...} -# 101| 5: [ImplicitConversionOperator] implicit conversion +# 101| 6: [ImplicitConversionOperator] implicit conversion # 101| -1: [TypeMention] D #-----| 2: (Parameters) # 101| 0: [Parameter] d diff --git a/csharp/ql/test/library-tests/generics/Generics.expected b/csharp/ql/test/library-tests/generics/Generics.expected index d390859b4df..8e82103a19e 100644 --- a/csharp/ql/test/library-tests/generics/Generics.expected +++ b/csharp/ql/test/library-tests/generics/Generics.expected @@ -31,6 +31,7 @@ test14 test15 | generics.cs:7:23:7:40 | GenericDelegate | test16 +| generics.cs:135:11:135:16 | Subtle | generics.cs:135:11:135:16 | | | generics.cs:135:11:135:16 | Subtle | generics.cs:138:21:138:25 | fs`1 | | generics.cs:135:11:135:16 | Subtle | generics.cs:140:21:140:25 | fs`1 | | generics.cs:135:11:135:16 | Subtle | generics.cs:142:21:142:22 | fs | diff --git a/csharp/ql/test/library-tests/generics/Generics.ql b/csharp/ql/test/library-tests/generics/Generics.ql index ab1f0af982a..95ae84ebd9a 100644 --- a/csharp/ql/test/library-tests/generics/Generics.ql +++ b/csharp/ql/test/library-tests/generics/Generics.ql @@ -118,7 +118,7 @@ query predicate test15(ConstructedDelegateType d) { query predicate test16(Class c, Method m) { c.hasName("Subtle") and - count(c.getAMethod()) = 3 and + count(c.getAMethod()) = 4 and m = c.getAMethod() } diff --git a/csharp/ql/test/library-tests/generics/PrintAst.expected b/csharp/ql/test/library-tests/generics/PrintAst.expected index 3653b3b7a2d..0d50888edd3 100644 --- a/csharp/ql/test/library-tests/generics/PrintAst.expected +++ b/csharp/ql/test/library-tests/generics/PrintAst.expected @@ -2,13 +2,13 @@ Nesting.cs: # 1| [Class] A`1 #-----| 1: (Type parameters) # 1| 0: [TypeParameter] T1 -# 3| 5: [Method] MA1 +# 3| 6: [Method] MA1 # 3| -1: [TypeMention] Void #-----| 2: (Parameters) # 3| 0: [Parameter] x # 3| -1: [TypeMention] T1 # 3| 4: [BlockStmt] {...} -# 4| 6: [Method] MA2`1 +# 4| 7: [Method] MA2`1 # 4| -1: [TypeMention] Void #-----| 1: (Type parameters) # 4| 0: [TypeParameter] T2 @@ -18,10 +18,10 @@ Nesting.cs: # 4| 1: [Parameter] y # 4| -1: [TypeMention] T2 # 4| 4: [BlockStmt] {...} -# 6| 7: [Class] B`1 +# 6| 8: [Class] B`1 #-----| 1: (Type parameters) # 6| 0: [TypeParameter] T3 -# 8| 5: [Method] MB1 +# 8| 6: [Method] MB1 # 8| -1: [TypeMention] Void #-----| 2: (Parameters) # 8| 0: [Parameter] x @@ -29,7 +29,7 @@ Nesting.cs: # 8| 1: [Parameter] y # 8| -1: [TypeMention] T3 # 8| 4: [BlockStmt] {...} -# 9| 6: [Method] MB2`1 +# 9| 7: [Method] MB2`1 # 9| -1: [TypeMention] Void #-----| 1: (Type parameters) # 9| 0: [TypeParameter] T4 @@ -41,14 +41,14 @@ Nesting.cs: # 9| 2: [Parameter] z # 9| -1: [TypeMention] T4 # 9| 4: [BlockStmt] {...} -# 12| 8: [Class] C -# 14| 5: [Method] MC1 +# 12| 9: [Class] C +# 14| 6: [Method] MC1 # 14| -1: [TypeMention] Void #-----| 2: (Parameters) # 14| 0: [Parameter] x # 14| -1: [TypeMention] T1 # 14| 4: [BlockStmt] {...} -# 15| 6: [Method] MC2`1 +# 15| 7: [Method] MC2`1 # 15| -1: [TypeMention] Void #-----| 1: (Type parameters) # 15| 0: [TypeParameter] T5 @@ -58,10 +58,10 @@ Nesting.cs: # 15| 1: [Parameter] y # 15| -1: [TypeMention] T5 # 15| 4: [BlockStmt] {...} -# 17| 7: [Class] D`1 +# 17| 8: [Class] D`1 #-----| 1: (Type parameters) # 17| 0: [TypeParameter] T6 -# 19| 5: [Method] MD1 +# 19| 6: [Method] MD1 # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] x @@ -69,7 +69,7 @@ Nesting.cs: # 19| 1: [Parameter] y # 19| -1: [TypeMention] T6 # 19| 4: [BlockStmt] {...} -# 20| 6: [Method] MD2`1 +# 20| 7: [Method] MD2`1 # 20| -1: [TypeMention] Void #-----| 1: (Type parameters) # 20| 0: [TypeParameter] T7 @@ -81,7 +81,7 @@ Nesting.cs: # 20| 2: [Parameter] z # 20| -1: [TypeMention] T7 # 20| 4: [BlockStmt] {...} -# 24| 9: [Method] Construct +# 24| 10: [Method] Construct # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; @@ -244,7 +244,7 @@ generics.cs: # 13| 3: [Class] A`1 #-----| 1: (Type parameters) # 13| 0: [TypeParameter] T -# 16| 5: [DelegateType] GenericDelegateInGenericClass`1 +# 16| 6: [DelegateType] GenericDelegateInGenericClass`1 #-----| 1: (Type parameters) # 16| 0: [TypeParameter] U #-----| 2: (Parameters) @@ -252,7 +252,7 @@ generics.cs: # 16| -1: [TypeMention] T # 16| 1: [Parameter] u # 16| -1: [TypeMention] U -# 18| 6: [Method] bar`1 +# 18| 7: [Method] bar`1 # 18| -1: [TypeMention] T #-----| 1: (Type parameters) # 18| 0: [TypeParameter] X @@ -271,25 +271,25 @@ generics.cs: # 22| 4: [Class] B`1 #-----| 1: (Type parameters) # 22| 0: [TypeParameter] T -# 25| 5: [Field] at +# 25| 6: [Field] at # 25| -1: [TypeMention] A # 25| 1: [TypeMention] T -# 27| 6: [Field] name +# 27| 7: [Field] name # 27| -1: [TypeMention] string -# 29| 7: [Method] foo +# 29| 8: [Method] foo # 29| -1: [TypeMention] Void # 29| 4: [BlockStmt] {...} -# 31| 8: [Method] fooParams +# 31| 9: [Method] fooParams # 31| -1: [TypeMention] Void #-----| 2: (Parameters) # 31| 0: [Parameter] ts # 31| -1: [TypeMention] T[] # 31| 1: [TypeMention] T # 31| 4: [BlockStmt] {...} -# 33| 9: [Method] staticFoo +# 33| 10: [Method] staticFoo # 33| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} -# 35| 10: [Property] Name +# 35| 11: [Property] Name # 35| -1: [TypeMention] string # 35| 3: [Getter] get_Name # 35| 4: [BlockStmt] {...} @@ -303,7 +303,7 @@ generics.cs: # 35| 0: [AssignExpr] ... = ... # 35| 0: [FieldAccess] access to field name # 35| 1: [ParameterAccess] access to parameter value -# 37| 11: [Event] myEvent +# 37| 12: [Event] myEvent # 37| -1: [TypeMention] GenericDelegate # 37| 1: [TypeMention] T # 37| 3: [AddEventAccessor] add_myEvent @@ -312,7 +312,7 @@ generics.cs: # 37| 4: [RemoveEventAccessor] remove_myEvent #-----| 2: (Parameters) # 37| 0: [Parameter] value -# 39| 12: [IncrementOperator] ++ +# 39| 13: [IncrementOperator] ++ # 39| -1: [TypeMention] B # 39| 1: [TypeMention] T #-----| 2: (Parameters) @@ -324,9 +324,9 @@ generics.cs: # 41| 0: [ObjectCreation] object creation of type B`1 # 41| 0: [TypeMention] B # 41| 1: [TypeMention] T -# 44| 13: [Destructor] ~B +# 44| 14: [Destructor] ~B # 44| 4: [BlockStmt] {...} -# 45| 14: [Method] f`1 +# 45| 15: [Method] f`1 # 45| -1: [TypeMention] Void #-----| 1: (Type parameters) # 45| 0: [TypeParameter] X @@ -339,17 +339,17 @@ generics.cs: #-----| 1: (Type parameters) # 48| 0: [TypeParameter] T1 # 48| 1: [TypeParameter] T2 -# 51| 5: [Class] Inner`2 +# 51| 6: [Class] Inner`2 #-----| 1: (Type parameters) # 51| 0: [TypeParameter] U1 # 51| 1: [TypeParameter] U2 -# 54| 5: [Field] t +# 54| 6: [Field] t # 54| -1: [TypeMention] T1 -# 55| 6: [Field] myFunc +# 55| 7: [Field] myFunc # 55| -1: [TypeMention] Func # 55| 1: [TypeMention] U1 # 55| 2: [TypeMention] T1 -# 56| 7: [Method] MyMethod`2 +# 56| 8: [Method] MyMethod`2 # 56| -1: [TypeMention] Void #-----| 1: (Type parameters) # 56| 0: [TypeParameter] W1 @@ -368,13 +368,13 @@ generics.cs: # 60| 6: [Class] Grid`1 #-----| 1: (Type parameters) # 60| 0: [TypeParameter] T -# 63| 5: [Field] NumRows +# 63| 6: [Field] NumRows # 63| -1: [TypeMention] int # 63| 1: [IntLiteral] 26 -# 64| 6: [Field] NumCols +# 64| 7: [Field] NumCols # 64| -1: [TypeMention] int # 64| 1: [IntLiteral] 10 -# 66| 7: [Field] cells +# 66| 8: [Field] cells # 66| -1: [TypeMention] T[,] # 66| 1: [TypeMention] T # 66| 1: [ArrayCreation] array creation of type T[,] @@ -382,7 +382,7 @@ generics.cs: # 66| 1: [TypeMention] T # 66| 0: [MemberConstantAccess] access to constant NumRows # 66| 1: [MemberConstantAccess] access to constant NumCols -# 68| 8: [Indexer] Item +# 68| 9: [Indexer] Item # 68| -1: [TypeMention] int #-----| 1: (Parameters) # 68| 0: [Parameter] i @@ -393,7 +393,7 @@ generics.cs: # 70| 4: [BlockStmt] {...} # 70| 0: [ReturnStmt] return ...; # 70| 0: [ParameterAccess] access to parameter i -# 73| 9: [Indexer] Item +# 73| 10: [Indexer] Item # 73| -1: [TypeMention] T #-----| 1: (Parameters) # 73| 0: [Parameter] c @@ -502,7 +502,7 @@ generics.cs: # 99| 1: [ParameterAccess] access to parameter col # 99| 1: [ParameterAccess] access to parameter value # 105| 7: [Class] Test -# 108| 5: [Method] Main +# 108| 6: [Method] Main # 108| -1: [TypeMention] Void # 109| 4: [BlockStmt] {...} # 110| 0: [LocalVariableDeclStmt] ... ...; @@ -605,7 +605,7 @@ generics.cs: # 128| 0: [ObjectCreation] object creation of type Test # 128| 0: [TypeMention] Test # 128| 1: [IntLiteral] 2 -# 131| 6: [Method] f +# 131| 7: [Method] f # 131| -1: [TypeMention] string #-----| 2: (Parameters) # 131| 0: [Parameter] s @@ -614,7 +614,7 @@ generics.cs: # 131| 0: [ReturnStmt] return ...; # 131| 0: [ParameterAccess] access to parameter s # 135| 8: [Class] Subtle -# 138| 5: [Method] fs`1 +# 138| 6: [Method] fs`1 # 138| -1: [TypeMention] Void #-----| 1: (Type parameters) # 138| 0: [TypeParameter] X @@ -622,7 +622,7 @@ generics.cs: # 138| 0: [Parameter] i # 138| -1: [TypeMention] int # 138| 4: [BlockStmt] {...} -# 140| 6: [Method] fs`1 +# 140| 7: [Method] fs`1 # 140| -1: [TypeMention] Void #-----| 1: (Type parameters) # 140| 0: [TypeParameter] X @@ -632,7 +632,7 @@ generics.cs: # 140| 1: [Parameter] j # 140| -1: [TypeMention] int # 140| 4: [BlockStmt] {...} -# 142| 7: [Method] fs +# 142| 8: [Method] fs # 142| -1: [TypeMention] Void #-----| 2: (Parameters) # 142| 0: [Parameter] i @@ -641,15 +641,15 @@ generics.cs: # 146| 9: [Class] Param`1 #-----| 1: (Type parameters) # 146| 0: [TypeParameter] T -# 148| 5: [Enum] E +# 148| 6: [Enum] E # 148| 5: [Field] x # 151| 10: [Class] ConstructedMethods -# 153| 7: [Method] CM1`1 +# 153| 8: [Method] CM1`1 # 153| -1: [TypeMention] Void #-----| 1: (Type parameters) # 153| 0: [TypeParameter] T # 153| 4: [BlockStmt] {...} -# 154| 10: [Method] CM2`1 +# 154| 11: [Method] CM2`1 # 154| -1: [TypeMention] T #-----| 1: (Type parameters) # 154| 0: [TypeParameter] T @@ -659,10 +659,10 @@ generics.cs: # 154| 4: [BlockStmt] {...} # 154| 0: [ReturnStmt] return ...; # 154| 0: [ParameterAccess] access to parameter t -# 156| 13: [Class] Class`1 +# 156| 14: [Class] Class`1 #-----| 1: (Type parameters) # 156| 0: [TypeParameter] T1 -# 158| 5: [Method] CM3`1 +# 158| 6: [Method] CM3`1 # 158| -1: [TypeMention] T2 #-----| 1: (Type parameters) # 158| 0: [TypeParameter] T2 @@ -674,10 +674,10 @@ generics.cs: # 158| 4: [BlockStmt] {...} # 158| 0: [ReturnStmt] return ...; # 158| 0: [ParameterAccess] access to parameter t -# 161| 14: [Method] NonCM +# 161| 15: [Method] NonCM # 161| -1: [TypeMention] Void # 161| 4: [BlockStmt] {...} -# 163| 15: [Method] CM +# 163| 16: [Method] CM # 163| -1: [TypeMention] Void # 164| 4: [BlockStmt] {...} # 165| 0: [ExprStmt] ...; @@ -718,14 +718,14 @@ generics.cs: #-----| 3: (Base types) # 179| 1: [TypeMention] Interface # 179| 1: [TypeMention] T -# 181| 5: [Method] set +# 181| 6: [Method] set # 181| -1: [TypeMention] Void #-----| 2: (Parameters) # 181| 0: [Parameter] t # 181| -1: [TypeMention] T # 181| 4: [BlockStmt] {...} # 184| 13: [Class] InheritanceTest -# 186| 5: [Field] member +# 186| 6: [Field] member # 186| -1: [TypeMention] Inheritance # 186| 1: [TypeMention] int # 189| 14: [Interface] Interface2`2 diff --git a/csharp/ql/test/library-tests/goto/Goto1.expected b/csharp/ql/test/library-tests/goto/Goto1.expected index 0baaf5ef723..137c1b7241c 100644 --- a/csharp/ql/test/library-tests/goto/Goto1.expected +++ b/csharp/ql/test/library-tests/goto/Goto1.expected @@ -1,6 +1,8 @@ | goto.cs:2:7:2:10 | call to constructor Object | goto.cs:2:7:2:10 | {...} | semmle.label | successor | -| goto.cs:2:7:2:10 | enter Goto | goto.cs:2:7:2:10 | call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | call to method | goto.cs:2:7:2:10 | call to constructor Object | semmle.label | successor | +| goto.cs:2:7:2:10 | enter Goto | goto.cs:2:7:2:10 | this access | semmle.label | successor | | goto.cs:2:7:2:10 | exit Goto (normal) | goto.cs:2:7:2:10 | exit Goto | semmle.label | successor | +| goto.cs:2:7:2:10 | this access | goto.cs:2:7:2:10 | call to method | semmle.label | successor | | goto.cs:2:7:2:10 | {...} | goto.cs:2:7:2:10 | exit Goto (normal) | semmle.label | successor | | goto.cs:4:17:4:20 | enter Main | goto.cs:5:5:20:5 | {...} | semmle.label | successor | | goto.cs:4:17:4:20 | exit Main (normal) | goto.cs:4:17:4:20 | exit Main | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/goto/PrintAst.expected b/csharp/ql/test/library-tests/goto/PrintAst.expected index a6ecfb8c301..e90947ed979 100644 --- a/csharp/ql/test/library-tests/goto/PrintAst.expected +++ b/csharp/ql/test/library-tests/goto/PrintAst.expected @@ -1,6 +1,6 @@ goto.cs: # 2| [Class] Goto -# 4| 5: [Method] Main +# 4| 6: [Method] Main # 4| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} # 6| 0: [BlockStmt] {...} diff --git a/csharp/ql/test/library-tests/implicittostring/implicitToString.expected b/csharp/ql/test/library-tests/implicittostring/implicitToString.expected index 14efebf2320..e42817cc306 100644 --- a/csharp/ql/test/library-tests/implicittostring/implicitToString.expected +++ b/csharp/ql/test/library-tests/implicittostring/implicitToString.expected @@ -1,3 +1,8 @@ +| implicitToString.cs:3:14:3:33 | call to method | TestImplicitToString | +| implicitToString.cs:5:18:5:26 | call to method | Container | +| implicitToString.cs:13:18:13:27 | call to method | Container2 | +| implicitToString.cs:15:18:15:27 | call to method | Container3 | +| implicitToString.cs:17:18:17:37 | call to method | FormattableContainer | | implicitToString.cs:35:27:35:35 | call to method ToString | Container | | implicitToString.cs:37:22:37:30 | call to method ToString | Container | | implicitToString.cs:39:22:39:30 | call to method ToString | Container | diff --git a/csharp/ql/test/library-tests/indexers/PrintAst.expected b/csharp/ql/test/library-tests/indexers/PrintAst.expected index 6f9fde00e24..93160309c79 100644 --- a/csharp/ql/test/library-tests/indexers/PrintAst.expected +++ b/csharp/ql/test/library-tests/indexers/PrintAst.expected @@ -1,12 +1,12 @@ indexers.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] BitArray -# 11| 4: [Field] bits +# 11| 5: [Field] bits # 11| -1: [TypeMention] Int32[] # 11| 1: [TypeMention] int -# 12| 5: [Field] length +# 12| 6: [Field] length # 12| -1: [TypeMention] int -# 14| 6: [InstanceConstructor] BitArray +# 14| 7: [InstanceConstructor] BitArray #-----| 2: (Parameters) # 14| 0: [Parameter] length # 14| -1: [TypeMention] int @@ -36,13 +36,13 @@ indexers.cs: # 19| 0: [FieldAccess] access to field length # 19| -1: [ThisAccess] this access # 19| 1: [ParameterAccess] access to parameter length -# 22| 7: [Property] Length +# 22| 8: [Property] Length # 22| -1: [TypeMention] int # 22| 3: [Getter] get_Length # 22| 4: [BlockStmt] {...} # 22| 0: [ReturnStmt] return ...; # 22| 0: [FieldAccess] access to field length -# 24| 8: [Indexer] Item +# 24| 9: [Indexer] Item # 24| -1: [TypeMention] bool #-----| 1: (Parameters) # 24| 0: [Parameter] index @@ -118,7 +118,7 @@ indexers.cs: # 46| 0: [IntLiteral] 1 # 46| 1: [ParameterAccess] access to parameter index # 53| 2: [Class] CountPrimes -# 56| 5: [Method] Count +# 56| 6: [Method] Count # 56| -1: [TypeMention] int #-----| 2: (Parameters) # 56| 0: [Parameter] max @@ -179,7 +179,7 @@ indexers.cs: # 66| 0: [LocalVariableAccess] access to local variable count # 69| 3: [ReturnStmt] return ...; # 69| 0: [LocalVariableAccess] access to local variable count -# 72| 6: [Method] Main +# 72| 7: [Method] Main # 72| -1: [TypeMention] Void #-----| 2: (Parameters) # 72| 0: [Parameter] args @@ -212,13 +212,13 @@ indexers.cs: # 76| 2: [CastExpr] (...) ... # 76| 1: [LocalVariableAccess] access to local variable max # 81| 3: [Class] Grid -# 84| 5: [Field] NumRows +# 84| 6: [Field] NumRows # 84| -1: [TypeMention] int # 84| 1: [IntLiteral] 26 -# 85| 6: [Field] NumCols +# 85| 7: [Field] NumCols # 85| -1: [TypeMention] int # 85| 1: [IntLiteral] 10 -# 87| 7: [Field] cells +# 87| 8: [Field] cells # 87| -1: [TypeMention] Int32[,] # 87| 1: [TypeMention] int # 87| 1: [ArrayCreation] array creation of type Int32[,] @@ -226,7 +226,7 @@ indexers.cs: # 87| 1: [TypeMention] int # 87| 0: [MemberConstantAccess] access to constant NumRows # 87| 1: [MemberConstantAccess] access to constant NumCols -# 89| 8: [Indexer] Item +# 89| 9: [Indexer] Item # 89| -1: [TypeMention] int #-----| 1: (Parameters) # 89| 0: [Parameter] c @@ -335,7 +335,7 @@ indexers.cs: # 115| 1: [ParameterAccess] access to parameter col # 115| 1: [ParameterAccess] access to parameter value # 121| 4: [Class] DuplicateIndexerSignatures -# 123| 5: [Indexer] Item +# 123| 6: [Indexer] Item # 123| -1: [TypeMention] bool #-----| 1: (Parameters) # 123| 0: [Parameter] index @@ -346,7 +346,7 @@ indexers.cs: # 125| 4: [BlockStmt] {...} # 125| 0: [ReturnStmt] return ...; # 125| 0: [BoolLiteral] false -# 128| 6: [Indexer] Item +# 128| 7: [Indexer] Item # 128| -1: [TypeMention] int #-----| 1: (Parameters) # 128| 0: [Parameter] c diff --git a/csharp/ql/test/library-tests/initializers/PrintAst.expected b/csharp/ql/test/library-tests/initializers/PrintAst.expected index 29b7ca47003..f59bb2f135f 100644 --- a/csharp/ql/test/library-tests/initializers/PrintAst.expected +++ b/csharp/ql/test/library-tests/initializers/PrintAst.expected @@ -1,14 +1,14 @@ initializers.cs: # 3| [Class] S1 -# 5| 5: [Field] P1 +# 5| 6: [Field] P1 # 5| -1: [TypeMention] int -# 6| 6: [Property] P2 +# 6| 7: [Property] P2 # 6| -1: [TypeMention] int # 6| 3: [Getter] get_P2 # 6| 4: [Setter] set_P2 #-----| 2: (Parameters) # 6| 0: [Parameter] value -# 7| 7: [Property] P3 +# 7| 8: [Property] P3 # 7| -1: [TypeMention] int # 7| 3: [Setter] set_P3 #-----| 2: (Parameters) @@ -17,13 +17,13 @@ initializers.cs: # 10| [Class] S2 #-----| 3: (Base types) # 10| 1: [TypeMention] IEnumerable -# 12| 5: [Method] Add +# 12| 6: [Method] Add # 12| -1: [TypeMention] Void #-----| 2: (Parameters) # 12| 0: [Parameter] x # 12| -1: [TypeMention] int # 12| 4: [BlockStmt] {...} -# 13| 6: [Method] Add +# 13| 7: [Method] Add # 13| -1: [TypeMention] Void #-----| 2: (Parameters) # 13| 0: [Parameter] x @@ -31,13 +31,13 @@ initializers.cs: # 13| 1: [Parameter] y # 13| -1: [TypeMention] int # 13| 4: [BlockStmt] {...} -# 14| 7: [Method] GetEnumerator +# 14| 8: [Method] GetEnumerator # 14| -1: [TypeMention] IEnumerator # 14| 4: [BlockStmt] {...} # 14| 0: [ReturnStmt] return ...; # 14| 0: [NullLiteral] null # 17| [Class] Test -# 19| 5: [Method] Main +# 19| 6: [Method] Main # 19| -1: [TypeMention] Void #-----| 2: (Parameters) # 19| 0: [Parameter] args diff --git a/csharp/ql/test/library-tests/linq/PrintAst.expected b/csharp/ql/test/library-tests/linq/PrintAst.expected index fee8ab80ee2..c16babcf270 100644 --- a/csharp/ql/test/library-tests/linq/PrintAst.expected +++ b/csharp/ql/test/library-tests/linq/PrintAst.expected @@ -1,6 +1,6 @@ queries.cs: # 5| [Class] Queries -# 7| 5: [Method] Queries1 +# 7| 6: [Method] Queries1 # 7| -1: [TypeMention] Void # 8| 4: [BlockStmt] {...} # 9| 0: [LocalVariableDeclStmt] ... ...; @@ -204,19 +204,19 @@ queries.cs: # 56| 1: [TupleExpr] (..., ...) # 56| 0: [LocalVariableAccess] access to local variable a # 56| 1: [LocalVariableAccess] access to local variable d -# 59| 6: [Class] A +# 59| 7: [Class] A #-----| 3: (Base types) # 59| 1: [TypeMention] IEnumerable -# 61| 5: [Method] GetEnumerator +# 61| 6: [Method] GetEnumerator # 61| -1: [TypeMention] IEnumerator # 62| 4: [BlockStmt] {...} # 63| 0: [ThrowStmt] throw ...; # 63| 0: [ObjectCreation] object creation of type NotImplementedException # 63| 0: [TypeMention] NotImplementedException -# 67| 7: [Class] B +# 67| 8: [Class] B #-----| 3: (Base types) # 67| 0: [TypeMention] A -# 69| 8: [Class] C +# 69| 9: [Class] C #-----| 3: (Base types) # 69| 0: [TypeMention] List # 69| 1: [TypeMention] int diff --git a/csharp/ql/test/library-tests/locations/locations.expected b/csharp/ql/test/library-tests/locations/locations.expected index d41369ddcd4..1d19fc3f0c5 100644 --- a/csharp/ql/test/library-tests/locations/locations.expected +++ b/csharp/ql/test/library-tests/locations/locations.expected @@ -19,6 +19,7 @@ member_locations | A.cs:3:23:3:26 | A | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | | A.cs:3:23:3:26 | A | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | | A.cs:3:23:3:26 | A | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | +| A.cs:3:23:3:26 | A`1 | A.cs:3:23:3:26 | | A.cs:3:23:3:26 | A.cs:3:23:3:26 | | A.cs:3:23:3:26 | A`1 | A.cs:5:23:5:26 | Prop | A.cs:5:23:5:26 | A.cs:5:23:5:26 | | A.cs:3:23:3:26 | A`1 | A.cs:6:23:6:26 | Item | A.cs:6:23:6:26 | A.cs:6:23:6:26 | | A.cs:3:23:3:26 | A`1 | A.cs:7:40:7:44 | Event | A.cs:7:40:7:44 | A.cs:7:40:7:44 | @@ -29,12 +30,14 @@ member_locations | A.cs:3:23:3:26 | A`1 | A.cs:12:12:12:12 | A | A.cs:12:12:12:12 | A.cs:12:12:12:12 | | A.cs:3:23:3:26 | A`1 | A.cs:13:6:13:6 | ~A | A.cs:13:6:13:6 | A.cs:13:6:13:6 | | A.cs:3:23:3:26 | A`1 | A.cs:14:33:14:33 | + | A.cs:14:33:14:33 | A.cs:14:33:14:33 | +| A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A2 | A.cs:17:14:17:15 | A.cs:17:14:17:15 | | A.cs:17:14:17:15 | A2 | A.cs:19:28:19:31 | Prop | A.cs:19:28:19:31 | A.cs:19:28:19:31 | | A.cs:17:14:17:15 | A2 | A.cs:21:28:21:31 | Item | A.cs:21:28:21:31 | A.cs:21:28:21:31 | | A.cs:17:14:17:15 | A2 | A.cs:27:40:27:44 | Event | A.cs:27:40:27:44 | A.cs:27:40:27:44 | | A.cs:17:14:17:15 | A2 | A.cs:33:28:33:35 | ToObject | A.cs:33:28:33:35 | A.cs:33:28:33:35 | | A.cs:17:14:17:15 | A2 | A.cs:35:17:35:17 | M | A.cs:35:17:35:17 | A.cs:35:17:35:17 | +| B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B | B.cs:3:14:3:14 | B.cs:3:14:3:14 | | B.cs:3:14:3:14 | B | B.cs:5:25:5:28 | Prop | B.cs:5:25:5:28 | B.cs:5:25:5:28 | | B.cs:3:14:3:14 | B | B.cs:7:25:7:28 | Item | B.cs:7:25:7:28 | B.cs:7:25:7:28 | @@ -44,21 +47,32 @@ member_locations | Base.cs:1:23:1:29 | Base | Base.cs:3:17:3:17 | M | Base.cs:3:17:3:17 | Base.cs:3:17:3:17 | | Base.cs:1:23:1:29 | Base | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:1:23:1:26 | Base | Base.cs:1:23:1:26 | Base.cs:1:23:1:26 | +| Base.cs:1:23:1:29 | Base`1 | Base.cs:1:23:1:29 | | Base.cs:1:23:1:29 | Base.cs:1:23:1:29 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:3:17:3:17 | M | Base.cs:3:17:3:17 | Base.cs:3:17:3:17 | | Base.cs:1:23:1:29 | Base`1 | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | +| Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | InnerBase | Base.cs:5:18:5:26 | Base.cs:5:18:5:26 | | Base.cs:8:23:8:30 | Base2`1 | Base.cs:8:23:8:27 | Base2 | Base.cs:8:23:8:27 | Base.cs:8:23:8:27 | +| Base.cs:8:23:8:30 | Base2`1 | Base.cs:8:23:8:30 | | Base.cs:8:23:8:30 | Base.cs:8:23:8:30 | +| C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C | C.cs:3:7:3:7 | C.cs:3:7:3:7 | | C.cs:3:7:3:7 | C | C.cs:5:17:5:17 | M | C.cs:5:17:5:17 | C.cs:5:17:5:17 | +| Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:36 | MultipleGeneric | Multiple1.cs:3:22:3:36 | Multiple1.cs:3:22:3:36 | +| Multiple1.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:39 | | Multiple1.cs:3:22:3:39 | Multiple1.cs:3:22:3:39 | +| Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | | Multiple1.cs:5:14:5:30 | Multiple1.cs:5:14:5:30 | | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:5:14:5:30 | Multiple1.cs:5:14:5:30 | | Multiple1.cs:5:14:5:30 | Multiple1Specific | Multiple1.cs:7:33:7:33 | M | Multiple1.cs:7:33:7:33 | Multiple1.cs:7:33:7:33 | +| Multiple2.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple2.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple | Multiple1.cs:1:22:1:29 | Multiple1.cs:1:22:1:29 | | Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:36 | MultipleGeneric | Multiple1.cs:3:22:3:36 | Multiple1.cs:3:22:3:36 | +| Multiple2.cs:3:22:3:39 | MultipleGeneric`1 | Multiple1.cs:3:22:3:39 | | Multiple1.cs:3:22:3:39 | Multiple1.cs:3:22:3:39 | +| Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | | Multiple2.cs:5:14:5:30 | Multiple2.cs:5:14:5:30 | | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:5:14:5:30 | Multiple2.cs:5:14:5:30 | | Multiple2.cs:5:14:5:30 | Multiple2Specific | Multiple2.cs:7:17:7:17 | M | Multiple2.cs:7:17:7:17 | Multiple2.cs:7:17:7:17 | +| Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub | Sub.cs:1:14:1:16 | Sub.cs:1:14:1:16 | | Sub.cs:1:14:1:16 | Sub | Sub.cs:3:17:3:20 | SubM | Sub.cs:3:17:3:20 | Sub.cs:3:17:3:20 | accessor_location diff --git a/csharp/ql/test/library-tests/members/PrintAst.expected b/csharp/ql/test/library-tests/members/PrintAst.expected index c8fe6fbf5d9..3d1f4a344a4 100644 --- a/csharp/ql/test/library-tests/members/PrintAst.expected +++ b/csharp/ql/test/library-tests/members/PrintAst.expected @@ -7,8 +7,8 @@ Members.cs: # 3| 1: [Parameter] e # 3| -1: [TypeMention] object # 6| 2: [Class] Class -# 9| 5: [Class] NestedClass -# 12| 5: [Method] Method`1 +# 9| 6: [Class] NestedClass +# 12| 6: [Method] Method`1 # 12| -1: [TypeMention] string #-----| 1: (Type parameters) # 12| 0: [TypeParameter] T @@ -17,7 +17,7 @@ Members.cs: # 12| -1: [TypeMention] T # 12| 4: [MethodCall] call to method ToString # 12| -1: [ParameterAccess] access to parameter t -# 14| 6: [Indexer] Item +# 14| 7: [Indexer] Item # 14| -1: [TypeMention] string #-----| 1: (Parameters) # 14| 0: [Parameter] i @@ -32,15 +32,15 @@ Members.cs: # 14| 0: [Parameter] i # 14| 1: [Parameter] value # 14| 4: [BlockStmt] {...} -# 16| 7: [Field] Field +# 16| 8: [Field] Field # 16| -1: [TypeMention] string -# 18| 8: [Property] Prop +# 18| 9: [Property] Prop # 18| -1: [TypeMention] string # 18| 3: [Getter] get_Prop # 18| 4: [Setter] set_Prop #-----| 2: (Parameters) # 18| 0: [Parameter] value -# 20| 9: [Event] Event +# 20| 10: [Event] Event # 20| -1: [TypeMention] EventHandler # 20| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) @@ -48,10 +48,10 @@ Members.cs: # 20| 4: [RemoveEventAccessor] remove_Event #-----| 2: (Parameters) # 20| 0: [Parameter] value -# 24| 6: [Method] Method +# 24| 7: [Method] Method # 24| -1: [TypeMention] Void # 24| 4: [BlockStmt] {...} -# 26| 7: [Indexer] Item +# 26| 8: [Indexer] Item # 26| -1: [TypeMention] string #-----| 1: (Parameters) # 26| 0: [Parameter] i @@ -66,15 +66,15 @@ Members.cs: # 26| 0: [Parameter] i # 26| 1: [Parameter] value # 26| 4: [BlockStmt] {...} -# 28| 8: [Field] Field +# 28| 9: [Field] Field # 28| -1: [TypeMention] string -# 30| 9: [Property] Prop +# 30| 10: [Property] Prop # 30| -1: [TypeMention] string # 30| 3: [Getter] get_Prop # 30| 4: [Setter] set_Prop #-----| 2: (Parameters) # 30| 0: [Parameter] value -# 32| 10: [Event] Event +# 32| 11: [Event] Event # 32| -1: [TypeMention] EventHandler # 32| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) @@ -83,8 +83,8 @@ Members.cs: #-----| 2: (Parameters) # 32| 0: [Parameter] value # 35| 3: [Class] Class2 -# 37| 5: [Class] NestedClass2 -# 39| 5: [Method] Method`1 +# 37| 6: [Class] NestedClass2 +# 39| 6: [Method] Method`1 # 39| -1: [TypeMention] string #-----| 1: (Type parameters) # 39| 0: [TypeParameter] T @@ -93,7 +93,7 @@ Members.cs: # 39| -1: [TypeMention] T # 39| 4: [MethodCall] call to method ToString # 39| -1: [ParameterAccess] access to parameter t -# 40| 6: [Indexer] Item +# 40| 7: [Indexer] Item # 40| -1: [TypeMention] string #-----| 1: (Parameters) # 40| 0: [Parameter] i @@ -108,15 +108,15 @@ Members.cs: # 40| 0: [Parameter] i # 40| 1: [Parameter] value # 40| 4: [BlockStmt] {...} -# 41| 7: [Field] Field +# 41| 8: [Field] Field # 41| -1: [TypeMention] string -# 42| 8: [Property] Prop +# 42| 9: [Property] Prop # 42| -1: [TypeMention] string # 42| 3: [Getter] get_Prop # 42| 4: [Setter] set_Prop #-----| 2: (Parameters) # 42| 0: [Parameter] value -# 43| 9: [Event] Event +# 43| 10: [Event] Event # 43| -1: [TypeMention] EventHandler # 43| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) @@ -124,10 +124,10 @@ Members.cs: # 43| 4: [RemoveEventAccessor] remove_Event #-----| 2: (Parameters) # 43| 0: [Parameter] value -# 46| 6: [Method] Method +# 46| 7: [Method] Method # 46| -1: [TypeMention] Void # 46| 4: [BlockStmt] {...} -# 47| 7: [Indexer] Item +# 47| 8: [Indexer] Item # 47| -1: [TypeMention] string #-----| 1: (Parameters) # 47| 0: [Parameter] i @@ -142,15 +142,15 @@ Members.cs: # 47| 0: [Parameter] i # 47| 1: [Parameter] value # 47| 4: [BlockStmt] {...} -# 48| 8: [Field] Field +# 48| 9: [Field] Field # 48| -1: [TypeMention] string -# 49| 9: [Property] Prop +# 49| 10: [Property] Prop # 49| -1: [TypeMention] string # 49| 3: [Getter] get_Prop # 49| 4: [Setter] set_Prop #-----| 2: (Parameters) # 49| 0: [Parameter] value -# 50| 10: [Event] Event +# 50| 11: [Event] Event # 50| -1: [TypeMention] EventHandler # 50| 3: [AddEventAccessor] add_Event #-----| 2: (Parameters) diff --git a/csharp/ql/test/library-tests/methods/PrintAst.expected b/csharp/ql/test/library-tests/methods/PrintAst.expected index 42268fdc89d..4810c6c0b5b 100644 --- a/csharp/ql/test/library-tests/methods/PrintAst.expected +++ b/csharp/ql/test/library-tests/methods/PrintAst.expected @@ -1,7 +1,7 @@ methods.cs: # 4| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] TestRef -# 10| 5: [Method] Swap +# 10| 6: [Method] Swap # 10| -1: [TypeMention] Void #-----| 2: (Parameters) # 10| 0: [Parameter] x @@ -22,7 +22,7 @@ methods.cs: # 14| 0: [AssignExpr] ... = ... # 14| 0: [ParameterAccess] access to parameter y # 14| 1: [LocalVariableAccess] access to local variable temp -# 17| 6: [Method] Main +# 17| 7: [Method] Main # 17| -1: [TypeMention] Void # 18| 4: [BlockStmt] {...} # 19| 0: [LocalVariableDeclStmt] ... ...; @@ -57,7 +57,7 @@ methods.cs: # 22| 2: [CastExpr] (...) ... # 22| 1: [LocalVariableAccess] access to local variable j # 26| 2: [Class] TestOut -# 29| 5: [Method] Divide +# 29| 6: [Method] Divide # 29| -1: [TypeMention] Void #-----| 2: (Parameters) # 29| 0: [Parameter] x @@ -81,7 +81,7 @@ methods.cs: # 32| 1: [RemExpr] ... % ... # 32| 0: [ParameterAccess] access to parameter x # 32| 1: [ParameterAccess] access to parameter y -# 35| 6: [Method] Main +# 35| 7: [Method] Main # 35| -1: [TypeMention] Void # 36| 4: [BlockStmt] {...} # 37| 0: [LocalVariableDeclStmt] ... ...; @@ -105,7 +105,7 @@ methods.cs: # 39| 2: [CastExpr] (...) ... # 39| 1: [LocalVariableAccess] access to local variable rem # 43| 3: [Class] Console -# 46| 5: [Method] Write +# 46| 6: [Method] Write # 46| -1: [TypeMention] Void #-----| 2: (Parameters) # 46| 0: [Parameter] fmt @@ -114,7 +114,7 @@ methods.cs: # 46| -1: [TypeMention] Object[] # 46| 1: [TypeMention] object # 46| 4: [BlockStmt] {...} -# 47| 6: [Method] WriteLine +# 47| 7: [Method] WriteLine # 47| -1: [TypeMention] Void #-----| 2: (Parameters) # 47| 0: [Parameter] fmt @@ -124,7 +124,7 @@ methods.cs: # 47| 1: [TypeMention] object # 47| 4: [BlockStmt] {...} # 50| 4: [Class] TestOverloading -# 53| 5: [Method] F +# 53| 6: [Method] F # 53| -1: [TypeMention] Void # 54| 4: [BlockStmt] {...} # 55| 0: [ExprStmt] ...; @@ -132,7 +132,7 @@ methods.cs: # 55| -1: [TypeAccess] access to type Console # 55| 0: [TypeMention] Console # 55| 0: [StringLiteralUtf16] "F()" -# 58| 6: [Method] F +# 58| 7: [Method] F # 58| -1: [TypeMention] Void #-----| 2: (Parameters) # 58| 0: [Parameter] x @@ -143,7 +143,7 @@ methods.cs: # 60| -1: [TypeAccess] access to type Console # 60| 0: [TypeMention] Console # 60| 0: [StringLiteralUtf16] "F(object)" -# 63| 7: [Method] F +# 63| 8: [Method] F # 63| -1: [TypeMention] Void #-----| 2: (Parameters) # 63| 0: [Parameter] x @@ -154,7 +154,7 @@ methods.cs: # 65| -1: [TypeAccess] access to type Console # 65| 0: [TypeMention] Console # 65| 0: [StringLiteralUtf16] "F(int)" -# 68| 8: [Method] F +# 68| 9: [Method] F # 68| -1: [TypeMention] Void #-----| 2: (Parameters) # 68| 0: [Parameter] x @@ -165,7 +165,7 @@ methods.cs: # 70| -1: [TypeAccess] access to type Console # 70| 0: [TypeMention] Console # 70| 0: [StringLiteralUtf16] "F(double)" -# 73| 11: [Method] F`1 +# 73| 12: [Method] F`1 # 73| -1: [TypeMention] Void #-----| 1: (Type parameters) # 73| 0: [TypeParameter] T @@ -178,7 +178,7 @@ methods.cs: # 75| -1: [TypeAccess] access to type Console # 75| 0: [TypeMention] Console # 75| 0: [StringLiteralUtf16] "F(T)" -# 78| 12: [Method] F +# 78| 13: [Method] F # 78| -1: [TypeMention] Void #-----| 2: (Parameters) # 78| 0: [Parameter] x @@ -191,7 +191,7 @@ methods.cs: # 80| -1: [TypeAccess] access to type Console # 80| 0: [TypeMention] Console # 80| 0: [StringLiteralUtf16] "F(double, double)" -# 83| 13: [Method] Main +# 83| 14: [Method] Main # 83| -1: [TypeMention] Void # 84| 4: [BlockStmt] {...} # 85| 0: [ExprStmt] ...; @@ -352,7 +352,7 @@ methods.cs: # 135| -1: [TypeAccess] access to type Boolean # 135| 0: [TypeMention] bool # 140| 7: [Class] TestDefaultParameters -# 142| 4: [Method] Method1 +# 142| 5: [Method] Method1 # 142| -1: [TypeMention] Void #-----| 2: (Parameters) # 142| 0: [Parameter] x @@ -360,7 +360,7 @@ methods.cs: # 142| 1: [Parameter] y # 142| -1: [TypeMention] int # 143| 4: [BlockStmt] {...} -# 146| 5: [Method] Method2 +# 146| 6: [Method] Method2 # 146| -1: [TypeMention] Void #-----| 2: (Parameters) # 146| 0: [Parameter] a @@ -379,12 +379,12 @@ methods.cs: # 146| 0: [StringLiteralUtf16] "a" # 146| 1: [StringLiteralUtf16] "b" # 147| 4: [BlockStmt] {...} -# 150| 6: [InstanceConstructor] TestDefaultParameters +# 150| 7: [InstanceConstructor] TestDefaultParameters #-----| 2: (Parameters) # 150| 0: [Parameter] x # 150| -1: [TypeMention] int # 151| 4: [BlockStmt] {...} -# 154| 7: [InstanceConstructor] TestDefaultParameters +# 154| 8: [InstanceConstructor] TestDefaultParameters #-----| 2: (Parameters) # 154| 0: [Parameter] x # 154| -1: [TypeMention] string @@ -394,7 +394,7 @@ methods.cs: # 154| 1: [ObjectCreation] object creation of type Double # 154| 0: [TypeMention] double # 155| 4: [BlockStmt] {...} -# 158| 8: [DelegateType] Del +# 158| 9: [DelegateType] Del #-----| 2: (Parameters) # 158| 0: [Parameter] a # 158| -1: [TypeMention] string @@ -405,7 +405,7 @@ methods.cs: # 158| -1: [TypeMention] double # 158| 1: [ObjectCreation] object creation of type Double # 158| 0: [TypeMention] double -# 160| 9: [Indexer] Item +# 160| 10: [Indexer] Item # 160| -1: [TypeMention] int #-----| 1: (Parameters) # 160| 0: [Parameter] x @@ -477,7 +477,7 @@ methods.cs: # 185| 9: [Class] TestCollidingMethods`1 #-----| 1: (Type parameters) # 185| 0: [TypeParameter] T -# 187| 5: [Method] M +# 187| 6: [Method] M # 187| -1: [TypeMention] Void #-----| 2: (Parameters) # 187| 0: [Parameter] p1 @@ -485,7 +485,7 @@ methods.cs: # 187| 1: [Parameter] p2 # 187| -1: [TypeMention] int # 187| 4: [BlockStmt] {...} -# 188| 6: [Method] M +# 188| 7: [Method] M # 188| -1: [TypeMention] Void #-----| 2: (Parameters) # 188| 0: [Parameter] p1 @@ -493,7 +493,7 @@ methods.cs: # 188| 1: [Parameter] p2 # 188| -1: [TypeMention] int # 188| 4: [BlockStmt] {...} -# 190| 7: [Method] Calls +# 190| 8: [Method] Calls # 190| -1: [TypeMention] Void # 191| 4: [BlockStmt] {...} # 192| 0: [LocalVariableDeclStmt] ... ...; @@ -525,13 +525,13 @@ methods.cs: # 197| -1: [LocalVariableAccess] access to local variable y # 197| 0: [IntLiteral] 1 # 197| 1: [IntLiteral] 1 -# 200| 8: [Class] Nested -# 202| 4: [InstanceConstructor] Nested +# 200| 9: [Class] Nested +# 202| 5: [InstanceConstructor] Nested #-----| 2: (Parameters) # 202| 0: [Parameter] p1 # 202| -1: [TypeMention] int # 202| 4: [BlockStmt] {...} -# 203| 5: [InstanceConstructor] Nested +# 203| 6: [InstanceConstructor] Nested #-----| 2: (Parameters) # 203| 0: [Parameter] p1 # 203| -1: [TypeMention] T diff --git a/csharp/ql/test/library-tests/namespaces/PrintAst.expected b/csharp/ql/test/library-tests/namespaces/PrintAst.expected index 2b0e505ec27..88d8dbe02a7 100644 --- a/csharp/ql/test/library-tests/namespaces/PrintAst.expected +++ b/csharp/ql/test/library-tests/namespaces/PrintAst.expected @@ -26,7 +26,7 @@ namespaces.cs: # 72| 1: [Class] A`1 #-----| 1: (Type parameters) # 72| 0: [TypeParameter] T -# 75| 5: [Class] B +# 75| 6: [Class] B # 79| 2: [Class] A # 83| [NamespaceDeclaration] namespace ... { ... } # 90| [NamespaceDeclaration] namespace ... { ... } diff --git a/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected b/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected index 8a2f4343556..9a0c4a7f029 100644 --- a/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected +++ b/csharp/ql/test/library-tests/nestedtypes/PrintAst.expected @@ -1,13 +1,13 @@ nestedtypes.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] Base -# 11| 5: [Struct] S -# 13| 6: [Interface] I -# 15| 7: [DelegateType] MyDelegate +# 11| 6: [Struct] S +# 13| 7: [Interface] I +# 15| 8: [DelegateType] MyDelegate #-----| 2: (Parameters) # 15| 0: [Parameter] s # 15| -1: [TypeMention] S -# 17| 8: [Method] F +# 17| 9: [Method] F # 17| -1: [TypeMention] Void # 18| 4: [BlockStmt] {...} # 19| 0: [ExprStmt] ...; @@ -15,12 +15,12 @@ nestedtypes.cs: # 19| -1: [TypeAccess] access to type Console # 19| 0: [TypeMention] Console # 19| 0: [StringLiteralUtf16] "Base.F" -# 22| 9: [Class] C +# 22| 10: [Class] C # 26| 2: [Class] Derived #-----| 3: (Base types) # 26| 0: [TypeMention] Base -# 29| 5: [Class] Nested -# 32| 5: [Method] G +# 29| 6: [Class] Nested +# 32| 6: [Method] G # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [LocalVariableDeclStmt] ... ...; @@ -33,7 +33,7 @@ nestedtypes.cs: # 35| 0: [MethodCall] call to method F # 35| -1: [LocalVariableAccess] access to local variable d # 42| 3: [Class] Test -# 45| 5: [Method] Main +# 45| 6: [Method] Main # 45| -1: [TypeMention] Void # 46| 4: [BlockStmt] {...} # 47| 0: [LocalVariableDeclStmt] ... ...; @@ -50,10 +50,10 @@ nestedtypes.cs: # 53| 4: [Class] Outer`1 #-----| 1: (Type parameters) # 53| 0: [TypeParameter] T -# 56| 6: [Class] Inner`1 +# 56| 7: [Class] Inner`1 #-----| 1: (Type parameters) # 56| 0: [TypeParameter] U -# 59| 5: [Method] F +# 59| 6: [Method] F # 59| -1: [TypeMention] Void #-----| 2: (Parameters) # 59| 0: [Parameter] t @@ -61,7 +61,7 @@ nestedtypes.cs: # 59| 1: [Parameter] u # 59| -1: [TypeMention] U # 59| 4: [BlockStmt] {...} -# 63| 7: [Method] F +# 63| 8: [Method] F # 63| -1: [TypeMention] Void #-----| 2: (Parameters) # 63| 0: [Parameter] t @@ -100,8 +100,8 @@ nestedtypes.cs: # 74| 5: [Class] Outer2`1 #-----| 1: (Type parameters) # 74| 0: [TypeParameter] T -# 77| 5: [Class] Inner2`1 +# 77| 6: [Class] Inner2`1 #-----| 1: (Type parameters) # 77| 0: [TypeParameter] T -# 80| 5: [Field] t +# 80| 6: [Field] t # 80| -1: [TypeMention] T diff --git a/csharp/ql/test/library-tests/nullable/NullableExpressions.expected b/csharp/ql/test/library-tests/nullable/NullableExpressions.expected index 675450ab2ee..7d66522f0b9 100644 --- a/csharp/ql/test/library-tests/nullable/NullableExpressions.expected +++ b/csharp/ql/test/library-tests/nullable/NullableExpressions.expected @@ -1,4 +1,6 @@ | 1 | 14 | nullable.cs:1:14:1:21 | Nullable | nullable.cs:1:14:1:21 | call to constructor Object | Object | +| 1 | 14 | nullable.cs:1:14:1:21 | Nullable | nullable.cs:1:14:1:21 | call to method | Void | +| 1 | 14 | nullable.cs:1:14:1:21 | call to method | nullable.cs:1:14:1:21 | this access | Nullable | | 5 | 13 | nullable.cs:5:9:6:24 | if (...) ... | nullable.cs:5:13:5:21 | ... == ... | Boolean | | 5 | 13 | nullable.cs:5:13:5:21 | ... == ... | nullable.cs:5:13:5:13 | access to parameter x | Nullable | | 5 | 18 | nullable.cs:5:13:5:21 | ... == ... | nullable.cs:5:18:5:21 | null | null | diff --git a/csharp/ql/test/library-tests/obinit/Flow.expected b/csharp/ql/test/library-tests/obinit/Flow.expected new file mode 100644 index 00000000000..a9306a762ff --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/Flow.expected @@ -0,0 +1,20 @@ +edges +| obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | obinit.cs:7:16:7:16 | [post] this access : A [field s] : String | provenance | | +| obinit.cs:5:27:5:34 | "source" : String | obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | provenance | | +| obinit.cs:7:16:7:16 | [post] this access : A [field s] : String | obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | provenance | | +| obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | provenance | | +| obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | provenance | | +| obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | provenance | | +| obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | obinit.cs:21:18:21:20 | access to field s | provenance | | +flow +| obinit.cs:21:18:21:20 | access to field s | +nodes +| obinit.cs:5:23:5:23 | [post] this access : A [field s] : String | semmle.label | [post] this access : A [field s] : String | +| obinit.cs:5:27:5:34 | "source" : String | semmle.label | "source" : String | +| obinit.cs:7:16:7:16 | [post] this access : A [field s] : String | semmle.label | [post] this access : A [field s] : String | +| obinit.cs:7:16:7:16 | this [Return] : A [field s] : String | semmle.label | this [Return] : A [field s] : String | +| obinit.cs:20:15:20:15 | access to local variable a : A [field s] : String | semmle.label | access to local variable a : A [field s] : String | +| obinit.cs:20:19:20:25 | object creation of type A : A [field s] : String | semmle.label | object creation of type A : A [field s] : String | +| obinit.cs:21:18:21:18 | access to local variable a : A [field s] : String | semmle.label | access to local variable a : A [field s] : String | +| obinit.cs:21:18:21:20 | access to field s | semmle.label | access to field s | +subpaths diff --git a/csharp/ql/test/library-tests/obinit/Flow.ql b/csharp/ql/test/library-tests/obinit/Flow.ql new file mode 100644 index 00000000000..54f0300546c --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/Flow.ql @@ -0,0 +1,20 @@ +import csharp + +module FlowConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asExpr().(StringLiteral).getValue() = "source" + } + + predicate isSink(DataFlow::Node sink) { + exists(MethodCall mc | + mc.getTarget().getUndecoratedName() = "Sink" and + mc.getAnArgument() = sink.asExpr() + ) + } +} + +module Flow = DataFlow::Global; + +import Flow::PathGraph + +query predicate flow(DataFlow::Node sink) { Flow::flowTo(sink) } diff --git a/csharp/ql/test/library-tests/obinit/Flow.qlref b/csharp/ql/test/library-tests/obinit/Flow.qlref new file mode 100644 index 00000000000..f48796a83f7 --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/Flow.qlref @@ -0,0 +1,2 @@ +query: Flow.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/library-tests/obinit/ObInit.expected b/csharp/ql/test/library-tests/obinit/ObInit.expected new file mode 100644 index 00000000000..38dd8268680 --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/ObInit.expected @@ -0,0 +1,25 @@ +method +| obinit.cs:2:18:2:18 | | obinit.cs:2:18:2:18 | A | +| obinit.cs:14:18:14:18 | | obinit.cs:14:18:14:18 | B | +call +| obinit.cs:7:16:7:16 | call to method | obinit.cs:2:18:2:18 | | obinit.cs:7:16:7:16 | A | +| 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 | 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: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 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | call to constructor Object | obinit.cs:9:25:9:27 | {...} | normal | 2 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | call to method | obinit.cs:9:16:9:16 | call to constructor Object | normal | 1 | +| obinit.cs:9:16:9:16 | A | obinit.cs:9:16:9:16 | this access | obinit.cs:9:16:9:16 | call to method | normal | 0 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:34:11:37 | call to constructor A | obinit.cs:11:42:11:44 | {...} | normal | 1 | +| obinit.cs:11:16:11:16 | A | obinit.cs:11:39:11:39 | access to parameter y | obinit.cs:11:34:11:37 | call to constructor A | normal | 0 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | call to method | obinit.cs:15:27:15:28 | 10 | normal | 1 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:16:15:16 | this access | obinit.cs:15:16:15:16 | call to method | normal | 0 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:22:15:25 | call to constructor A | obinit.cs:15:31:15:33 | {...} | normal | 3 | +| obinit.cs:15:16:15:16 | B | obinit.cs:15:27:15:28 | 10 | obinit.cs:15:22:15:25 | call to constructor A | normal | 2 | diff --git a/csharp/ql/test/library-tests/obinit/ObInit.ql b/csharp/ql/test/library-tests/obinit/ObInit.ql new file mode 100644 index 00000000000..cfd21d14b5e --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/ObInit.ql @@ -0,0 +1,28 @@ +import csharp +import semmle.code.csharp.controlflow.internal.ControlFlowGraphImpl +import semmle.code.csharp.controlflow.internal.Completion +import semmle.code.csharp.dataflow.internal.DataFlowPrivate +import semmle.code.csharp.dataflow.internal.DataFlowDispatch + +query predicate method(ObjectInitMethod m, RefType t) { m.getDeclaringType() = t } + +query predicate call(Call c, ObjectInitMethod m, Callable src) { + c.getTarget() = m and c.getEnclosingCallable() = src +} + +predicate scope(Callable callable, AstNode n, int i) { + (callable instanceof ObjectInitMethod or callable instanceof Constructor) and + scopeFirst(callable, n) and + i = 0 + or + exists(AstNode prev | + scope(callable, prev, i - 1) and + succ(prev, n, _) and + i < 30 + ) +} + +query predicate cfg(Callable callable, AstNode pred, AstNode succ, Completion c, int i) { + scope(callable, pred, i) and + succ(pred, succ, c) +} diff --git a/csharp/ql/test/library-tests/obinit/obinit.cs b/csharp/ql/test/library-tests/obinit/obinit.cs new file mode 100644 index 00000000000..9a9c628e71f --- /dev/null +++ b/csharp/ql/test/library-tests/obinit/obinit.cs @@ -0,0 +1,30 @@ +namespace ObInit { + public class A { + int x = 1; + + public string s = "source"; + + public A() { } + + public A(int y) { } + + public A(int y, int z) : this(y) { } + } + + public class B : A { + public B() : base(10) { } + + static void Sink(string s) { } + + static void Foo() { + A a = new A(); + Sink(a.s); // $ flow + + A a2 = new A(0, 0); + Sink(a2.s); // $ MISSING: flow + + B b = new B(); + Sink(b.s); // $ MISSING: flow + } + } +} diff --git a/csharp/ql/test/library-tests/operators/PrintAst.expected b/csharp/ql/test/library-tests/operators/PrintAst.expected index 0b490c13d2c..d3b41fe05fb 100644 --- a/csharp/ql/test/library-tests/operators/PrintAst.expected +++ b/csharp/ql/test/library-tests/operators/PrintAst.expected @@ -1,18 +1,18 @@ operators.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] IntVector -# 10| 4: [InstanceConstructor] IntVector +# 10| 5: [InstanceConstructor] IntVector #-----| 2: (Parameters) # 10| 0: [Parameter] length # 10| -1: [TypeMention] int # 10| 4: [BlockStmt] {...} -# 12| 5: [Property] Length +# 12| 6: [Property] Length # 12| -1: [TypeMention] int # 12| 3: [Getter] get_Length # 12| 4: [BlockStmt] {...} # 12| 0: [ReturnStmt] return ...; # 12| 0: [IntLiteral] 4 -# 14| 6: [Indexer] Item +# 14| 7: [Indexer] Item # 14| -1: [TypeMention] int #-----| 1: (Parameters) # 14| 0: [Parameter] index @@ -28,7 +28,7 @@ operators.cs: # 14| 0: [Parameter] index # 14| 1: [Parameter] value # 14| 4: [BlockStmt] {...} -# 16| 7: [IncrementOperator] ++ +# 16| 8: [IncrementOperator] ++ # 16| -1: [TypeMention] IntVector #-----| 2: (Parameters) # 16| 0: [Parameter] iv @@ -66,7 +66,7 @@ operators.cs: # 21| 2: [ReturnStmt] return ...; # 21| 0: [LocalVariableAccess] access to local variable temp # 26| 2: [Class] TestUnaryOperator -# 29| 5: [Method] Main +# 29| 6: [Method] Main # 29| -1: [TypeMention] Void # 30| 4: [BlockStmt] {...} # 31| 0: [LocalVariableDeclStmt] ... ...; @@ -90,9 +90,9 @@ operators.cs: # 34| 1: [OperatorCall] call to operator ++ # 34| 0: [LocalVariableAccess] access to local variable iv1 # 39| 3: [Struct] Digit -# 42| 5: [Field] value +# 42| 6: [Field] value # 42| -1: [TypeMention] byte -# 44| 6: [InstanceConstructor] Digit +# 44| 7: [InstanceConstructor] Digit #-----| 2: (Parameters) # 44| 0: [Parameter] value # 44| -1: [TypeMention] byte @@ -115,7 +115,7 @@ operators.cs: # 48| 0: [FieldAccess] access to field value # 48| -1: [ThisAccess] this access # 48| 1: [ParameterAccess] access to parameter value -# 51| 7: [ImplicitConversionOperator] implicit conversion +# 51| 8: [ImplicitConversionOperator] implicit conversion # 51| -1: [TypeMention] byte #-----| 2: (Parameters) # 51| 0: [Parameter] d @@ -124,7 +124,7 @@ operators.cs: # 53| 0: [ReturnStmt] return ...; # 53| 0: [FieldAccess] access to field value # 53| -1: [ParameterAccess] access to parameter d -# 56| 8: [ExplicitConversionOperator] explicit conversion +# 56| 9: [ExplicitConversionOperator] explicit conversion # 56| -1: [TypeMention] Digit #-----| 2: (Parameters) # 56| 0: [Parameter] b @@ -135,7 +135,7 @@ operators.cs: # 58| -1: [TypeMention] Digit # 58| 0: [ParameterAccess] access to parameter b # 63| 4: [Class] TestConversionOperator -# 66| 5: [Method] Main +# 66| 6: [Method] Main # 66| -1: [TypeMention] Void # 67| 4: [BlockStmt] {...} # 68| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/overlay/base/test.expected b/csharp/ql/test/library-tests/overlay/base/test.expected index 0c2b5750f2c..67a440b87db 100644 --- a/csharp/ql/test/library-tests/overlay/base/test.expected +++ b/csharp/ql/test/library-tests/overlay/base/test.expected @@ -1,5 +1,7 @@ expressions | A.cs:8:16:8:16 | call to constructor Object | +| A.cs:8:16:8:16 | call to method | +| A.cs:8:16:8:16 | this access | | A.cs:10:13:10:16 | access to field name | | A.cs:10:13:10:16 | this access | | A.cs:10:13:10:20 | ... = ... | @@ -34,7 +36,11 @@ expressions | A.cs:58:27:58:30 | this access | | A.cs:59:20:59:20 | access to local variable x | | A.cs:63:18:63:36 | call to constructor Attribute | +| A.cs:63:18:63:36 | call to method | +| A.cs:63:18:63:36 | this access | | A.cs:65:18:65:18 | call to constructor Object | +| A.cs:65:18:65:18 | call to method | +| A.cs:65:18:65:18 | this access | | Program.cs:9:17:9:20 | access to parameter args | | Program.cs:9:17:9:27 | access to property Length | | Program.cs:9:17:9:32 | ... == ... | @@ -56,6 +62,8 @@ expressions | Program.cs:16:31:16:31 | access to local variable a | | Program.cs:16:31:16:42 | call to method ToString | | Program.cs:21:16:21:22 | call to constructor Object | +| Program.cs:21:16:21:22 | call to method | +| Program.cs:21:16:21:22 | this access | | Program.cs:23:13:23:23 | access to field programName | | Program.cs:23:13:23:23 | this access | | Program.cs:23:13:23:27 | ... = ... | @@ -77,6 +85,8 @@ expressions | Program.cs:51:35:51:59 | "Program handler removed" | | Program.cs:57:20:57:20 | access to parameter b | | Program.cs:64:18:64:33 | call to constructor Attribute | +| Program.cs:64:18:64:33 | call to method | +| Program.cs:64:18:64:33 | this access | statements | A.cs:9:9:11:9 | {...} | | A.cs:10:13:10:21 | ...; | diff --git a/csharp/ql/test/library-tests/overlay/overlay/test.expected b/csharp/ql/test/library-tests/overlay/overlay/test.expected index d9d4d0ec6fe..bb9a82b3a23 100644 --- a/csharp/ql/test/library-tests/overlay/overlay/test.expected +++ b/csharp/ql/test/library-tests/overlay/overlay/test.expected @@ -1,6 +1,10 @@ expressions | A.cs:5:18:5:18 | call to constructor Object | +| A.cs:5:18:5:18 | call to method | +| A.cs:5:18:5:18 | this access | | A.cs:10:16:10:16 | call to constructor Object | +| A.cs:10:16:10:16 | call to method | +| A.cs:10:16:10:16 | this access | | A.cs:12:13:12:16 | access to field name | | A.cs:12:13:12:16 | this access | | A.cs:12:13:12:20 | ... = ... | @@ -40,6 +44,8 @@ expressions | A.cs:64:24:64:27 | this access | | A.cs:64:24:64:37 | call to method ToUpper | | A.cs:69:18:69:36 | call to constructor Attribute | +| A.cs:69:18:69:36 | call to method | +| A.cs:69:18:69:36 | this access | | Program.cs:9:17:9:20 | access to parameter args | | Program.cs:9:17:9:27 | access to property Length | | Program.cs:9:17:9:32 | ... == ... | @@ -61,6 +67,8 @@ expressions | Program.cs:16:31:16:31 | access to local variable a | | Program.cs:16:31:16:42 | call to method ToString | | Program.cs:21:16:21:22 | call to constructor Object | +| Program.cs:21:16:21:22 | call to method | +| Program.cs:21:16:21:22 | this access | | Program.cs:23:13:23:23 | access to field programName | | Program.cs:23:13:23:23 | this access | | Program.cs:23:13:23:27 | ... = ... | @@ -82,6 +90,8 @@ expressions | Program.cs:51:35:51:59 | "Program handler removed" | | Program.cs:57:20:57:20 | access to parameter b | | Program.cs:64:18:64:33 | call to constructor Attribute | +| Program.cs:64:18:64:33 | call to method | +| Program.cs:64:18:64:33 | this access | statements | A.cs:5:18:5:18 | {...} | | A.cs:11:9:13:9 | {...} | diff --git a/csharp/ql/test/library-tests/partial/Partial2.expected b/csharp/ql/test/library-tests/partial/Partial2.expected index 9dc3a24a4ce..87194dd3f9e 100644 --- a/csharp/ql/test/library-tests/partial/Partial2.expected +++ b/csharp/ql/test/library-tests/partial/Partial2.expected @@ -1,10 +1,15 @@ +| Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:1:15:1:26 | | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:4:18:4:42 | PartialMethodWithoutBody1 | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:5:17:5:23 | Method2 | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:14:18:14:39 | PartialMethodWithBody1 | | Partial.cs:1:15:1:26 | TwoPartClass | Partial.cs:15:17:15:23 | Method3 | +| Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:1:15:1:26 | | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:4:18:4:42 | PartialMethodWithoutBody1 | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:5:17:5:23 | Method2 | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:14:18:14:39 | PartialMethodWithBody1 | | Partial.cs:12:15:12:26 | TwoPartClass | Partial.cs:15:17:15:23 | Method3 | +| Partial.cs:32:15:32:33 | OnePartPartialClass | Partial.cs:32:15:32:33 | | | Partial.cs:32:15:32:33 | OnePartPartialClass | Partial.cs:34:18:34:42 | PartialMethodWithoutBody2 | | Partial.cs:32:15:32:33 | OnePartPartialClass | Partial.cs:35:17:35:23 | Method4 | +| PartialMultipleFiles1.cs:1:22:1:41 | PartialMultipleFiles | PartialMultipleFiles1.cs:1:22:1:41 | | +| PartialMultipleFiles2.cs:1:22:1:41 | PartialMultipleFiles | PartialMultipleFiles1.cs:1:22:1:41 | | diff --git a/csharp/ql/test/library-tests/partial/PrintAst.expected b/csharp/ql/test/library-tests/partial/PrintAst.expected index d97f6fc01f0..0729946b18b 100644 --- a/csharp/ql/test/library-tests/partial/PrintAst.expected +++ b/csharp/ql/test/library-tests/partial/PrintAst.expected @@ -1,19 +1,19 @@ Partial.cs: # 1| [Class] TwoPartClass -# 4| 5: [Method] PartialMethodWithoutBody1 +# 4| 6: [Method] PartialMethodWithoutBody1 # 4| -1: [TypeMention] Void -# 5| 6: [Method] Method2 +# 5| 7: [Method] Method2 # 5| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} -# 14| 7: [Method] PartialMethodWithBody1 +# 14| 8: [Method] PartialMethodWithBody1 # 3| -1: [TypeMention] Void # 14| 4: [BlockStmt] {...} -# 15| 8: [Method] Method3 +# 15| 9: [Method] Method3 # 15| -1: [TypeMention] Void # 15| 4: [BlockStmt] {...} -# 16| 9: [Field] _backingField +# 16| 10: [Field] _backingField # 16| -1: [TypeMention] object -# 18| 10: [Property] PartialProperty1 +# 18| 11: [Property] PartialProperty1 # 7| -1: [TypeMention] object # 18| -1: [TypeMention] object # 20| 3: [Getter] get_PartialProperty1 @@ -28,10 +28,10 @@ Partial.cs: # 21| 0: [AssignExpr] ... = ... # 21| 0: [FieldAccess] access to field _backingField # 21| 1: [ParameterAccess] access to parameter value -# 23| 11: [Field] _backingArray +# 23| 12: [Field] _backingArray # 23| -1: [TypeMention] Object[] # 23| 1: [TypeMention] object -# 25| 12: [Indexer] Item +# 25| 13: [Indexer] Item # 9| -1: [TypeMention] object # 25| -1: [TypeMention] object #-----| 1: (Parameters) @@ -58,22 +58,22 @@ Partial.cs: # 28| 0: [ParameterAccess] access to parameter index # 28| 1: [ParameterAccess] access to parameter value # 32| [Class] OnePartPartialClass -# 34| 5: [Method] PartialMethodWithoutBody2 +# 34| 6: [Method] PartialMethodWithoutBody2 # 34| -1: [TypeMention] Void -# 35| 6: [Method] Method4 +# 35| 7: [Method] Method4 # 35| -1: [TypeMention] Void # 35| 4: [BlockStmt] {...} # 38| [Class] NonPartialClass -# 40| 5: [Method] Method5 +# 40| 6: [Method] Method5 # 40| -1: [TypeMention] Void # 40| 4: [BlockStmt] {...} -# 41| 6: [Property] Property +# 41| 7: [Property] Property # 41| -1: [TypeMention] object # 41| 3: [Getter] get_Property # 41| 4: [Setter] set_Property #-----| 2: (Parameters) # 41| 0: [Parameter] value -# 42| 7: [Indexer] Item +# 42| 8: [Indexer] Item # 42| -1: [TypeMention] object #-----| 1: (Parameters) # 42| 0: [Parameter] index diff --git a/csharp/ql/test/library-tests/properties/PrintAst.expected b/csharp/ql/test/library-tests/properties/PrintAst.expected index 370d180a08e..2df3ee3f5e8 100644 --- a/csharp/ql/test/library-tests/properties/PrintAst.expected +++ b/csharp/ql/test/library-tests/properties/PrintAst.expected @@ -1,9 +1,9 @@ properties.cs: # 5| [NamespaceDeclaration] namespace ... { ... } # 7| 1: [Class] Button -# 10| 5: [Field] caption +# 10| 6: [Field] caption # 10| -1: [TypeMention] string -# 12| 6: [Property] Caption +# 12| 7: [Property] Caption # 12| -1: [TypeMention] string # 15| 3: [Getter] get_Caption # 15| 4: [BlockStmt] {...} @@ -22,7 +22,7 @@ properties.cs: # 21| 0: [AssignExpr] ... = ... # 21| 0: [FieldAccess] access to field caption # 21| 1: [ParameterAccess] access to parameter value -# 26| 7: [Method] Paint +# 26| 8: [Method] Paint # 26| -1: [TypeMention] Void # 27| 4: [BlockStmt] {...} # 28| 0: [LocalVariableDeclStmt] ... ...; @@ -43,9 +43,9 @@ properties.cs: # 30| 1: [PropertyCall] access to property Caption # 30| -1: [LocalVariableAccess] access to local variable okButton # 34| 2: [Class] Counter -# 37| 5: [Field] next +# 37| 6: [Field] next # 37| -1: [TypeMention] int -# 39| 6: [Property] Next +# 39| 7: [Property] Next # 39| -1: [TypeMention] int # 41| 3: [Getter] get_Next # 41| 4: [BlockStmt] {...} @@ -53,32 +53,32 @@ properties.cs: # 41| 0: [PostIncrExpr] ...++ # 41| 0: [FieldAccess] access to field next # 46| 3: [Class] Point -# 49| 5: [Property] X +# 49| 6: [Property] X # 49| -1: [TypeMention] int # 49| 3: [Getter] get_X # 49| 4: [Setter] set_X #-----| 2: (Parameters) # 49| 0: [Parameter] value -# 50| 6: [Property] Y +# 50| 7: [Property] Y # 50| -1: [TypeMention] int # 50| 3: [Getter] get_Y # 50| 4: [Setter] set_Y #-----| 2: (Parameters) # 50| 0: [Parameter] value # 54| 4: [Class] ReadOnlyPoint -# 57| 4: [Property] X +# 57| 5: [Property] X # 57| -1: [TypeMention] int # 57| 3: [Getter] get_X # 57| 4: [Setter] set_X #-----| 2: (Parameters) # 57| 0: [Parameter] value -# 58| 5: [Property] Y +# 58| 6: [Property] Y # 58| -1: [TypeMention] int # 58| 3: [Getter] get_Y # 58| 4: [Setter] set_Y #-----| 2: (Parameters) # 58| 0: [Parameter] value -# 59| 6: [InstanceConstructor] ReadOnlyPoint +# 59| 7: [InstanceConstructor] ReadOnlyPoint #-----| 2: (Parameters) # 59| 0: [Parameter] x # 59| -1: [TypeMention] int @@ -94,15 +94,15 @@ properties.cs: # 62| 0: [PropertyCall] access to property Y # 62| 1: [ParameterAccess] access to parameter y # 67| 5: [Class] A -# 69| 5: [Field] y +# 69| 6: [Field] y # 69| -1: [TypeMention] int -# 70| 6: [Property] X +# 70| 7: [Property] X # 70| -1: [TypeMention] int # 70| 3: [Getter] get_X # 70| 4: [BlockStmt] {...} # 70| 0: [ReturnStmt] return ...; # 70| 0: [IntLiteral] 0 -# 71| 7: [Property] Y +# 71| 8: [Property] Y # 71| -1: [TypeMention] int # 73| 3: [Getter] get_Y # 73| 4: [BlockStmt] {...} @@ -116,7 +116,7 @@ properties.cs: # 74| 0: [AssignExpr] ... = ... # 74| 0: [FieldAccess] access to field y # 74| 1: [ParameterAccess] access to parameter value -# 76| 8: [Property] Z +# 76| 9: [Property] Z # 76| -1: [TypeMention] int # 76| 3: [Getter] get_Z # 76| 4: [Setter] set_Z @@ -125,9 +125,9 @@ properties.cs: # 79| 6: [Class] B #-----| 3: (Base types) # 79| 0: [TypeMention] A -# 81| 5: [Field] z +# 81| 6: [Field] z # 81| -1: [TypeMention] int -# 82| 6: [Property] X +# 82| 7: [Property] X # 82| -1: [TypeMention] int # 82| 3: [Getter] get_X # 82| 4: [BlockStmt] {...} @@ -136,7 +136,7 @@ properties.cs: # 82| 0: [PropertyCall] access to property X # 82| -1: [BaseAccess] base access # 82| 1: [IntLiteral] 1 -# 83| 7: [Property] Y +# 83| 8: [Property] Y # 83| -1: [TypeMention] int # 83| 3: [Setter] set_Y #-----| 2: (Parameters) @@ -152,7 +152,7 @@ properties.cs: # 83| 1: [IntLiteral] 0 # 83| 1: [IntLiteral] 0 # 83| 2: [ParameterAccess] access to parameter value -# 84| 8: [Property] Z +# 84| 9: [Property] Z # 84| -1: [TypeMention] int # 86| 3: [Getter] get_Z # 86| 4: [BlockStmt] {...} @@ -167,13 +167,13 @@ properties.cs: # 87| 0: [FieldAccess] access to field z # 87| 1: [ParameterAccess] access to parameter value # 91| 7: [Class] Test -# 93| 5: [Property] Init +# 93| 6: [Property] Init # 93| -1: [TypeMention] int # 93| 3: [Setter] set_Init #-----| 2: (Parameters) # 93| 0: [Parameter] value # 93| 4: [BlockStmt] {...} -# 94| 6: [Method] Main +# 94| 7: [Method] Main # 94| -1: [TypeMention] Void # 95| 4: [BlockStmt] {...} # 96| 0: [LocalVariableDeclStmt] ... ...; @@ -211,19 +211,19 @@ properties.cs: # 110| 9: [Class] ImplementsProperties #-----| 3: (Base types) # 110| 1: [TypeMention] InterfaceWithProperties -# 112| 5: [Property] Prop1 +# 112| 6: [Property] Prop1 # 112| -1: [TypeMention] int # 114| 3: [Getter] get_Prop1 # 114| 4: [BlockStmt] {...} # 114| 0: [ReturnStmt] return ...; # 114| 0: [IntLiteral] 0 -# 117| 6: [Property] Prop2 +# 117| 7: [Property] Prop2 # 117| -1: [TypeMention] int # 119| 3: [Setter] set_Prop2 #-----| 2: (Parameters) # 119| 0: [Parameter] value # 119| 4: [BlockStmt] {...} -# 122| 7: [Property] Prop2 +# 122| 8: [Property] Prop2 # 122| -1: [TypeMention] InterfaceWithProperties # 122| -1: [TypeMention] int # 124| 3: [Setter] set_Prop2 diff --git a/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected b/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected index bb3acba4f64..524249492d3 100644 --- a/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected +++ b/csharp/ql/test/library-tests/standalone/brokentypes/brokenTypes.expected @@ -1,7 +1,15 @@ | BrokenTypes.cs:2:14:2:13 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:2:14:2:13 | call to method | Void | VoidType | +| BrokenTypes.cs:2:14:2:13 | this access | | UnknownType | | BrokenTypes.cs:5:14:5:16 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:5:14:5:16 | call to method | Void | VoidType | +| BrokenTypes.cs:5:14:5:16 | this access | var | UnknownType | | BrokenTypes.cs:7:14:7:14 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:7:14:7:14 | call to method | Void | VoidType | +| BrokenTypes.cs:7:14:7:14 | this access | C | Class | | BrokenTypes.cs:13:14:13:20 | call to constructor Object | object | ObjectType | +| BrokenTypes.cs:13:14:13:20 | call to method | Void | VoidType | +| BrokenTypes.cs:13:14:13:20 | this access | Program | Class | | BrokenTypes.cs:17:11:17:12 | access to local variable x1 | C | Class | | BrokenTypes.cs:17:11:17:22 | C x1 = ... | C | Class | | BrokenTypes.cs:17:16:17:22 | object creation of type C | C | Class | diff --git a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected index fab1dec1100..a42a3c662d4 100644 --- a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected +++ b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected @@ -1,6 +1,8 @@ | ControlFlow.cs:3:7:3:9 | call to constructor Object | ControlFlow.cs:3:7:3:9 | {...} | -| ControlFlow.cs:3:7:3:9 | enter Cfg | ControlFlow.cs:3:7:3:9 | call to constructor Object | +| ControlFlow.cs:3:7:3:9 | call to method | ControlFlow.cs:3:7:3:9 | call to constructor Object | +| ControlFlow.cs:3:7:3:9 | enter Cfg | ControlFlow.cs:3:7:3:9 | this access | | ControlFlow.cs:3:7:3:9 | exit Cfg (normal) | ControlFlow.cs:3:7:3:9 | exit Cfg | +| ControlFlow.cs:3:7:3:9 | this access | ControlFlow.cs:3:7:3:9 | call to method | | ControlFlow.cs:3:7:3:9 | {...} | ControlFlow.cs:3:7:3:9 | exit Cfg (normal) | | ControlFlow.cs:5:10:5:10 | enter F | ControlFlow.cs:6:5:11:5 | {...} | | ControlFlow.cs:5:10:5:10 | exit F (normal) | ControlFlow.cs:5:10:5:10 | exit F | diff --git a/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected b/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected index a4a2aa6e7a8..791cd3450e8 100644 --- a/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected +++ b/csharp/ql/test/library-tests/standalone/errorrecovery/ErrorCalls.expected @@ -1,10 +1,15 @@ | errors.cs:13:11:13:12 | errors.cs:13:11:13:12 | call to constructor Object | Object | +| errors.cs:13:11:13:12 | errors.cs:13:11:13:12 | call to method | | | errors.cs:22:31:22:40 | errors.cs:22:31:22:40 | call to method | none | | errors.cs:41:21:41:28 | errors.cs:41:21:41:28 | object creation of type C1 | C1 | | errors.cs:42:13:42:19 | errors.cs:42:13:42:19 | call to method m1 | m1 | | errors.cs:43:13:43:19 | errors.cs:43:13:43:19 | call to method m2 | m2 | | errors.cs:44:13:44:38 | errors.cs:44:13:44:38 | call to method WriteLine | WriteLine | | errors.cs:48:11:48:12 | errors.cs:48:11:48:12 | call to constructor Object | Object | +| errors.cs:48:11:48:12 | errors.cs:48:11:48:12 | call to method | | | errors.cs:51:17:51:25 | errors.cs:51:17:51:25 | object creation of type C2 | none | | errors.cs:65:11:65:12 | errors.cs:65:11:65:12 | call to constructor Object | Object | +| errors.cs:65:11:65:12 | errors.cs:65:11:65:12 | call to method | | | errors.cs:70:11:70:12 | errors.cs:70:11:70:12 | call to constructor Object | Object | +| errors.cs:70:11:70:12 | errors.cs:70:11:70:12 | call to method | | +| errors.cs:79:11:79:12 | errors.cs:79:11:79:12 | call to method | | diff --git a/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected b/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected index 8c4346f7832..3f724bc4902 100644 --- a/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected +++ b/csharp/ql/test/library-tests/standalone/externalLocationSink/externalLocationSink.expected @@ -4,5 +4,6 @@ compilationErrors | standalone.cs:16:12:16:18 | CS0104: 'ILogger' is an ambiguous reference between 'A.ILogger' and 'B.ILogger' | methodCalls +| standalone.cs:14:14:14:14 | call to method | | standalone.cs:20:9:20:21 | call to method | | standalone.cs:25:9:25:33 | call to method | diff --git a/csharp/ql/test/library-tests/statements/PrintAst.expected b/csharp/ql/test/library-tests/statements/PrintAst.expected index 6aea0fa286e..59af8ce4a2e 100644 --- a/csharp/ql/test/library-tests/statements/PrintAst.expected +++ b/csharp/ql/test/library-tests/statements/PrintAst.expected @@ -1,6 +1,6 @@ fixed.cs: # 3| [Class] Fixed -# 5| 5: [Method] fixed1 +# 5| 6: [Method] fixed1 # 5| -1: [TypeMention] Void # 6| 4: [BlockStmt] {...} # 7| 0: [LocalVariableDeclStmt] ... ...; @@ -52,7 +52,7 @@ fixed.cs: statements.cs: # 6| [NamespaceDeclaration] namespace ... { ... } # 8| 1: [Class] Class -# 11| 5: [Method] Main +# 11| 6: [Method] Main # 11| -1: [TypeMention] Void # 12| 4: [BlockStmt] {...} # 13| 0: [LabelStmt] block: @@ -60,7 +60,7 @@ statements.cs: # 15| 0: [BlockStmt] {...} # 17| 1: [BlockStmt] {...} # 18| 0: [BlockStmt] {...} -# 24| 6: [Method] MainEmpty +# 24| 7: [Method] MainEmpty # 24| -1: [TypeMention] Void # 25| 4: [BlockStmt] {...} # 26| 0: [LocalVariableDeclStmt] ... ...; @@ -75,7 +75,7 @@ statements.cs: # 28| 4: [IfStmt] if (...) ... # 28| 0: [BoolLiteral] true # 28| 1: [EmptyStmt] ; -# 31| 7: [Method] MainLocalVarDecl +# 31| 8: [Method] MainLocalVarDecl # 31| -1: [TypeMention] Void # 32| 4: [BlockStmt] {...} # 33| 0: [LocalVariableDeclStmt] ... ...; @@ -113,7 +113,7 @@ statements.cs: # 38| -1: [TypeMention] string # 38| 0: [LocalVariableAccess] access to local variable y # 38| 1: [StringLiteralUtf16] "test" -# 41| 8: [Method] MainLocalConstDecl +# 41| 9: [Method] MainLocalConstDecl # 41| -1: [TypeMention] Void # 42| 4: [BlockStmt] {...} # 43| 0: [LocalConstantDeclStmt] const ... ...; @@ -139,7 +139,7 @@ statements.cs: # 45| 1: [LocalVariableAccess] access to local variable r # 45| 1: [CastExpr] (...) ... # 45| 1: [LocalVariableAccess] access to local variable r -# 48| 9: [Method] MainExpr +# 48| 10: [Method] MainExpr # 48| -1: [TypeMention] Void # 49| 4: [BlockStmt] {...} # 50| 0: [LocalVariableDeclStmt] ... ...; @@ -162,7 +162,7 @@ statements.cs: # 54| -1: [TypeAccess] access to type Console # 54| 0: [TypeMention] Console # 54| 0: [LocalVariableAccess] access to local variable i -# 57| 10: [Method] MainIf +# 57| 11: [Method] MainIf # 57| -1: [TypeMention] Void #-----| 2: (Parameters) # 57| 0: [Parameter] args @@ -186,7 +186,7 @@ statements.cs: # 65| -1: [TypeAccess] access to type Console # 65| 0: [TypeMention] Console # 65| 0: [StringLiteralUtf16] "One or more arguments" -# 69| 11: [Method] MainSwitch +# 69| 12: [Method] MainSwitch # 69| -1: [TypeMention] Void #-----| 2: (Parameters) # 69| 0: [Parameter] args @@ -226,7 +226,7 @@ statements.cs: # 81| 1: [CastExpr] (...) ... # 81| 1: [LocalVariableAccess] access to local variable n # 82| 8: [BreakStmt] break; -# 86| 12: [Method] StringSwitch +# 86| 13: [Method] StringSwitch # 86| -1: [TypeMention] int #-----| 2: (Parameters) # 86| 0: [Parameter] foo @@ -270,7 +270,7 @@ statements.cs: # 106| 0: [IntLiteral] 7 # 108| 1: [ReturnStmt] return ...; # 108| 0: [IntLiteral] 7 -# 111| 13: [Method] MainWhile +# 111| 14: [Method] MainWhile # 111| -1: [TypeMention] Void #-----| 2: (Parameters) # 111| 0: [Parameter] args @@ -298,7 +298,7 @@ statements.cs: # 117| 1: [ExprStmt] ...; # 117| 0: [PostIncrExpr] ...++ # 117| 0: [LocalVariableAccess] access to local variable i -# 121| 14: [Method] MainDo +# 121| 15: [Method] MainDo # 121| -1: [TypeMention] Void # 122| 4: [BlockStmt] {...} # 123| 0: [LocalVariableDeclStmt] ... ...; @@ -324,7 +324,7 @@ statements.cs: # 127| -1: [TypeAccess] access to type Console # 127| 0: [TypeMention] Console # 127| 0: [LocalVariableAccess] access to local variable s -# 131| 15: [Method] MainFor +# 131| 16: [Method] MainFor # 131| -1: [TypeMention] Void #-----| 2: (Parameters) # 131| 0: [Parameter] args @@ -350,7 +350,7 @@ statements.cs: # 135| 0: [ArrayAccess] access to array element # 135| -1: [ParameterAccess] access to parameter args # 135| 0: [LocalVariableAccess] access to local variable i -# 139| 16: [Method] MainForeach +# 139| 17: [Method] MainForeach # 139| -1: [TypeMention] Void #-----| 2: (Parameters) # 139| 0: [Parameter] args @@ -367,7 +367,7 @@ statements.cs: # 143| -1: [TypeAccess] access to type Console # 143| 0: [TypeMention] Console # 143| 0: [LocalVariableAccess] access to local variable s -# 147| 17: [Method] MainBreak +# 147| 18: [Method] MainBreak # 147| -1: [TypeMention] Void # 148| 4: [BlockStmt] {...} # 149| 0: [WhileStmt] while (...) ... @@ -390,7 +390,7 @@ statements.cs: # 153| -1: [TypeAccess] access to type Console # 153| 0: [TypeMention] Console # 153| 0: [LocalVariableAccess] access to local variable s -# 157| 18: [Method] MainContinue +# 157| 19: [Method] MainContinue # 157| -1: [TypeMention] Void #-----| 2: (Parameters) # 157| 0: [Parameter] args @@ -423,7 +423,7 @@ statements.cs: # 162| 0: [ArrayAccess] access to array element # 162| -1: [ParameterAccess] access to parameter args # 162| 0: [LocalVariableAccess] access to local variable i -# 166| 19: [Method] MainGoto +# 166| 20: [Method] MainGoto # 166| -1: [TypeMention] Void #-----| 2: (Parameters) # 166| 0: [Parameter] args @@ -452,7 +452,7 @@ statements.cs: # 171| 1: [PropertyCall] access to property Length # 171| -1: [ParameterAccess] access to parameter args # 171| 1: [GotoLabelStmt] goto ...; -# 174| 20: [Method] Add +# 174| 21: [Method] Add # 174| -1: [TypeMention] int #-----| 2: (Parameters) # 174| 0: [Parameter] a @@ -464,7 +464,7 @@ statements.cs: # 176| 0: [AddExpr] ... + ... # 176| 0: [ParameterAccess] access to parameter a # 176| 1: [ParameterAccess] access to parameter b -# 178| 21: [Method] MainReturn +# 178| 22: [Method] MainReturn # 178| -1: [TypeMention] Void # 179| 4: [BlockStmt] {...} # 180| 0: [ExprStmt] ...; @@ -475,7 +475,7 @@ statements.cs: # 180| 0: [IntLiteral] 1 # 180| 1: [IntLiteral] 2 # 181| 1: [ReturnStmt] return ...; -# 184| 22: [Method] Range +# 184| 23: [Method] Range # 184| -1: [TypeMention] IEnumerable # 184| 1: [TypeMention] int #-----| 2: (Parameters) @@ -498,7 +498,7 @@ statements.cs: # 188| 0: [YieldReturnStmt] yield return ...; # 188| 0: [LocalVariableAccess] access to local variable i # 190| 1: [YieldBreakStmt] yield break; -# 192| 23: [Method] MainYield +# 192| 24: [Method] MainYield # 192| -1: [TypeMention] Void # 193| 4: [BlockStmt] {...} # 194| 0: [ForeachStmt] foreach (... ... in ...) ... @@ -514,7 +514,7 @@ statements.cs: # 196| -1: [TypeAccess] access to type Console # 196| 0: [TypeMention] Console # 196| 0: [LocalVariableAccess] access to local variable x -# 200| 24: [Method] Divide +# 200| 25: [Method] Divide # 200| -1: [TypeMention] double #-----| 2: (Parameters) # 200| 0: [Parameter] x @@ -534,7 +534,7 @@ statements.cs: # 203| 0: [DivExpr] ... / ... # 203| 0: [ParameterAccess] access to parameter x # 203| 1: [ParameterAccess] access to parameter y -# 205| 25: [Method] MainTryThrow +# 205| 26: [Method] MainTryThrow # 205| -1: [TypeMention] Void #-----| 2: (Parameters) # 205| 0: [Parameter] args @@ -603,7 +603,7 @@ statements.cs: # 223| -1: [TypeAccess] access to type Console # 223| 0: [TypeMention] Console # 223| 0: [StringLiteralUtf16] "Exception" -# 231| 26: [Method] MainCheckedUnchecked +# 231| 27: [Method] MainCheckedUnchecked # 231| -1: [TypeMention] Void # 232| 4: [BlockStmt] {...} # 233| 0: [LocalVariableDeclStmt] ... ...; @@ -631,10 +631,10 @@ statements.cs: # 240| 0: [AddExpr] ... + ... # 240| 0: [LocalVariableAccess] access to local variable i # 240| 1: [IntLiteral] 1 -# 244| 27: [Class] AccountLock -# 246| 5: [Field] balance +# 244| 28: [Class] AccountLock +# 246| 6: [Field] balance # 246| -1: [TypeMention] decimal -# 247| 6: [Method] Withdraw +# 247| 7: [Method] Withdraw # 247| -1: [TypeMention] Void #-----| 2: (Parameters) # 247| 0: [Parameter] amount @@ -656,7 +656,7 @@ statements.cs: # 255| 0: [AssignSubExpr] ... -= ... # 255| 0: [FieldAccess] access to field balance # 255| 1: [ParameterAccess] access to parameter amount -# 260| 28: [Method] MainUsing +# 260| 29: [Method] MainUsing # 260| -1: [TypeMention] Void # 261| 4: [BlockStmt] {...} # 262| 0: [UsingBlockStmt] using (...) {...} @@ -686,7 +686,7 @@ statements.cs: # 268| 0: [TypeMention] File # 268| 0: [StringLiteralUtf16] "test.txt" # 269| 1: [BlockStmt] {...} -# 273| 29: [Method] MainLabeled +# 273| 30: [Method] MainLabeled # 273| -1: [TypeMention] Void # 274| 4: [BlockStmt] {...} # 275| 0: [GotoLabelStmt] goto ...; @@ -700,11 +700,11 @@ statements.cs: # 278| 0: [AssignExpr] ... = ... # 278| 0: [LocalVariableAccess] access to local variable x # 278| 1: [IntLiteral] 9 -# 281| 30: [Field] lockObject +# 281| 31: [Field] lockObject # 281| -1: [TypeMention] Lock # 281| 1: [ObjectCreation] object creation of type Lock # 281| 0: [TypeMention] Lock -# 283| 31: [Method] LockMethod +# 283| 32: [Method] LockMethod # 283| -1: [TypeMention] Void # 284| 4: [BlockStmt] {...} # 285| 0: [LockStmt] lock (...) {...} diff --git a/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected b/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected index 6529f9feed5..4e975eedd4c 100644 --- a/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected +++ b/csharp/ql/test/library-tests/stringinterpolation/PrintAst.expected @@ -1,6 +1,6 @@ StringInterpolation.cs: # 3| [Class] MyStringInterpolationClass -# 6| 5: [Method] M +# 6| 6: [Method] M # 6| -1: [TypeMention] Void # 7| 4: [BlockStmt] {...} # 8| 0: [LocalVariableDeclStmt] ... ...; diff --git a/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected b/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected index 9d3c935266a..0f131d8c25c 100644 --- a/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected +++ b/csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected @@ -52,6 +52,8 @@ same | StructuralComparison.cs:50:18:50:21 | access to property Prop | StructuralComparison.cs:51:18:51:26 | access to property Prop | gvn | StructuralComparison.cs:3:14:3:18 | call to constructor Object | (kind:Expr(79)) | +| StructuralComparison.cs:3:14:3:18 | call to method | ((kind:Expr(12),false,Class) :: (kind:Expr(24),false,)) | +| StructuralComparison.cs:3:14:3:18 | this access | (kind:Expr(12),false,Class) | | StructuralComparison.cs:3:14:3:18 | {...} | (kind:Stmt(1)) | | StructuralComparison.cs:5:26:5:26 | access to field x | (kind:Expr(16),true,x) | | StructuralComparison.cs:5:26:5:26 | this access | (kind:Expr(12)) | @@ -148,8 +150,12 @@ gvn | StructuralComparison.cs:28:15:28:15 | access to field x | (kind:Expr(16),true,x) | | StructuralComparison.cs:28:15:28:15 | this access | (kind:Expr(12),false,Class) | | StructuralComparison.cs:32:14:32:22 | call to constructor Object | (kind:Expr(79)) | +| StructuralComparison.cs:32:14:32:22 | call to method | ((kind:Expr(12),false,BaseClass) :: (kind:Expr(24),false,)) | +| StructuralComparison.cs:32:14:32:22 | this access | (kind:Expr(12),false,BaseClass) | | StructuralComparison.cs:32:14:32:22 | {...} | (kind:Stmt(1)) | | StructuralComparison.cs:38:14:38:25 | call to constructor BaseClass | (kind:Expr(79)) | +| StructuralComparison.cs:38:14:38:25 | call to method | ((kind:Expr(12),false,DerivedClass) :: (kind:Expr(24),false,)) | +| StructuralComparison.cs:38:14:38:25 | this access | (kind:Expr(12),false,DerivedClass) | | StructuralComparison.cs:38:14:38:25 | {...} | (kind:Stmt(1)) | | StructuralComparison.cs:41:5:45:5 | {...} | ((((kind:Expr(14),false,x3) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,x2) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: ((((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) :: (kind:Stmt(1))))) | | StructuralComparison.cs:42:9:42:28 | ... ...; | (((kind:Expr(14),false,x1) :: ((kind:Expr(16),true,Field) :: (kind:Expr(83)))) :: (kind:Stmt(22))) | diff --git a/csharp/ql/test/library-tests/types/PrintAst.expected b/csharp/ql/test/library-tests/types/PrintAst.expected index 47c3c11261b..c6dc07ab1a5 100644 --- a/csharp/ql/test/library-tests/types/PrintAst.expected +++ b/csharp/ql/test/library-tests/types/PrintAst.expected @@ -1,91 +1,91 @@ types.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Class -# 5| 5: [Method] BoolType +# 5| 6: [Method] BoolType # 5| -1: [TypeMention] bool -# 6| 6: [Method] CharType +# 6| 7: [Method] CharType # 6| -1: [TypeMention] char -# 7| 7: [Method] DecimalType +# 7| 8: [Method] DecimalType # 7| -1: [TypeMention] decimal -# 8| 8: [Method] SByteType +# 8| 9: [Method] SByteType # 8| -1: [TypeMention] sbyte -# 9| 9: [Method] ShortType +# 9| 10: [Method] ShortType # 9| -1: [TypeMention] short -# 10| 10: [Method] IntType +# 10| 11: [Method] IntType # 10| -1: [TypeMention] int -# 11| 11: [Method] LongType +# 11| 12: [Method] LongType # 11| -1: [TypeMention] long -# 12| 12: [Method] ByteType +# 12| 13: [Method] ByteType # 12| -1: [TypeMention] byte -# 13| 13: [Method] UShortType +# 13| 14: [Method] UShortType # 13| -1: [TypeMention] ushort -# 14| 14: [Method] UIntType +# 14| 15: [Method] UIntType # 14| -1: [TypeMention] uint -# 15| 15: [Method] ULongType +# 15| 16: [Method] ULongType # 15| -1: [TypeMention] ulong -# 16| 16: [Method] FloatType +# 16| 17: [Method] FloatType # 16| -1: [TypeMention] float -# 17| 17: [Method] DoubleType +# 17| 18: [Method] DoubleType # 17| -1: [TypeMention] double -# 18| 18: [Method] NullableType +# 18| 19: [Method] NullableType # 18| -1: [TypeMention] Struct? # 18| 1: [TypeMention] Struct -# 19| 19: [Method] VoidType +# 19| 20: [Method] VoidType # 19| -1: [TypeMention] Void -# 20| 20: [Method] ArrayType +# 20| 21: [Method] ArrayType # 20| -1: [TypeMention] Class[] # 20| 1: [TypeMention] Class -# 21| 21: [Method] ArrayArrayType +# 21| 22: [Method] ArrayArrayType # 21| -1: [TypeMention] Class[][] # 21| 1: [TypeMention] Class -# 22| 22: [Method] ConstructedClassType +# 22| 23: [Method] ConstructedClassType # 22| -1: [TypeMention] GenericClass # 22| 1: [TypeMention] Class -# 23| 23: [Method] ConstructedInterfaceType +# 23| 24: [Method] ConstructedInterfaceType # 23| -1: [TypeMention] GenericInterface # 23| 1: [TypeMention] Class -# 24| 24: [Method] ConstructedStructType +# 24| 25: [Method] ConstructedStructType # 24| -1: [TypeMention] GenericStruct # 24| 1: [TypeMention] Class -# 25| 25: [Method] DelegateType +# 25| 26: [Method] DelegateType # 25| -1: [TypeMention] Delegate -# 26| 26: [Method] PointerType +# 26| 27: [Method] PointerType # 26| -1: [TypeMention] byte* # 26| 1: [TypeMention] byte -# 27| 27: [Method] PointerPointerType +# 27| 28: [Method] PointerPointerType # 27| -1: [TypeMention] byte** # 27| 1: [TypeMention] byte -# 28| 28: [Method] PointerArrayArrayType +# 28| 29: [Method] PointerArrayArrayType # 28| -1: [TypeMention] Byte*[][] # 28| 1: [TypeMention] byte -# 29| 29: [Method] NullableArrayType +# 29| 30: [Method] NullableArrayType # 29| -1: [TypeMention] Nullable[] # 29| 1: [TypeMention] byte? # 29| 1: [TypeMention] byte -# 30| 30: [Method] NullableArrayArrayType +# 30| 31: [Method] NullableArrayArrayType # 30| -1: [TypeMention] Nullable[][] # 30| 1: [TypeMention] byte? # 30| 1: [TypeMention] byte -# 32| 31: [Method] ArrayNullArrayType1 +# 32| 32: [Method] ArrayNullArrayType1 # 32| -1: [TypeMention] Byte[][] # 32| 1: [TypeMention] byte -# 33| 32: [Method] ArrayNullArrayType2 +# 33| 33: [Method] ArrayNullArrayType2 # 33| -1: [TypeMention] Object[][] # 33| 1: [TypeMention] object -# 34| 33: [Method] ArrayNullableRefType +# 34| 34: [Method] ArrayNullableRefType # 34| -1: [TypeMention] Object[] # 34| 1: [TypeMention] object -# 35| 34: [Method] NullableRefType +# 35| 35: [Method] NullableRefType # 35| -1: [TypeMention] object -# 37| 35: [Method] NullableArrayArrayType2 +# 37| 36: [Method] NullableArrayArrayType2 # 37| -1: [TypeMention] Nullable[][] # 37| 1: [TypeMention] byte? # 37| 1: [TypeMention] byte -# 38| 36: [Method] Map +# 38| 37: [Method] Map # 38| -1: [TypeMention] Map # 38| 1: [TypeMention] string # 38| 2: [TypeMention] Class -# 39| 37: [Method] Null +# 39| 38: [Method] Null # 39| -1: [TypeMention] Class # 40| 4: [BlockStmt] {...} # 41| 0: [ReturnStmt] return ...; @@ -112,21 +112,21 @@ types.cs: # 59| 1: [DefaultAttribute] [InlineArray(...)] # 59| -1: [TypeMention] InlineArrayAttribute # 59| 0: [IntLiteral] 10 -# 62| 5: [Field] myInlineArrayElements +# 62| 6: [Field] myInlineArrayElements # 62| -1: [TypeMention] int # 66| 11: [InlineArrayType] MyMultiDimensionalInlineArray #-----| 0: (Attributes) # 65| 1: [DefaultAttribute] [InlineArray(...)] # 65| -1: [TypeMention] InlineArrayAttribute # 65| 0: [IntLiteral] 5 -# 68| 5: [Field] myMultiDimentionalInlineArrayElements +# 68| 6: [Field] myMultiDimentionalInlineArrayElements # 68| -1: [TypeMention] MyInlineArray # 72| 12: [InlineArrayType] MyMultiDimensionalInlineArray2 #-----| 0: (Attributes) # 71| 1: [DefaultAttribute] [InlineArray(...)] # 71| -1: [TypeMention] InlineArrayAttribute # 71| 0: [IntLiteral] 7 -# 74| 5: [Field] myMultiDimentionalInlineArrayElements +# 74| 6: [Field] myMultiDimentionalInlineArrayElements # 74| -1: [TypeMention] String[] # 74| 1: [TypeMention] string # 78| 13: [InlineArrayType] MyMultiDimensionalInlineArray3 @@ -134,7 +134,7 @@ types.cs: # 77| 1: [DefaultAttribute] [InlineArray(...)] # 77| -1: [TypeMention] InlineArrayAttribute # 77| 0: [IntLiteral] 4 -# 80| 5: [Field] myMultiDimentionalInlineArrayElements +# 80| 6: [Field] myMultiDimentionalInlineArrayElements # 80| -1: [TypeMention] Object[,] # 80| 1: [TypeMention] object # 84| 14: [InlineArrayType] MyMultiDimensionalInlineArray4 @@ -142,6 +142,6 @@ types.cs: # 83| 1: [DefaultAttribute] [InlineArray(...)] # 83| -1: [TypeMention] InlineArrayAttribute # 83| 0: [IntLiteral] 11 -# 86| 5: [Field] myMultiDimentionalInlineArrayElements +# 86| 6: [Field] myMultiDimentionalInlineArrayElements # 86| -1: [TypeMention] Object[][] # 86| 1: [TypeMention] object diff --git a/csharp/ql/test/library-tests/unsafe/PrintAst.expected b/csharp/ql/test/library-tests/unsafe/PrintAst.expected index d18e3b33072..76e1387cb76 100644 --- a/csharp/ql/test/library-tests/unsafe/PrintAst.expected +++ b/csharp/ql/test/library-tests/unsafe/PrintAst.expected @@ -1,7 +1,7 @@ unsafe.cs: # 1| [NamespaceDeclaration] namespace ... { ... } # 3| 1: [Class] Test -# 5| 5: [Method] Main +# 5| 6: [Method] Main # 5| -1: [TypeMention] Void #-----| 2: (Parameters) # 5| 0: [Parameter] args @@ -93,7 +93,7 @@ unsafe.cs: # 19| 1: [SubExpr] ... - ... # 19| 0: [LocalVariableAccess] access to local variable ip # 19| 1: [LocalVariableAccess] access to local variable ip42 -# 22| 6: [Method] f +# 22| 7: [Method] f # 22| -1: [TypeMention] Void #-----| 2: (Parameters) # 22| 0: [Parameter] p @@ -114,10 +114,10 @@ unsafe.cs: # 26| 0: [AddExpr] ... + ... # 26| 0: [ParameterAccess] access to parameter p # 26| 1: [IntLiteral] 0 -# 30| 7: [Method] g +# 30| 8: [Method] g # 30| -1: [TypeMention] Void # 30| 4: [BlockStmt] {...} -# 32| 8: [Method] h +# 32| 9: [Method] h # 32| -1: [TypeMention] Void # 33| 4: [BlockStmt] {...} # 34| 0: [UnsafeStmt] unsafe {...} diff --git a/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected b/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected index c0f9e405516..cf1fa3e2c8f 100644 --- a/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected +++ b/csharp/ql/test/query-tests/Bad Practices/Path Combine/PathCombine.expected @@ -1 +1 @@ -| PathCombine.cs:7:9:7:54 | call to method Combine | Call to 'System.IO.Path.Combine'. | +| PathCombine.cs:7:9:7:54 | call to method Combine | Call to 'System.IO.Path.Combine' may silently drop its earlier arguments. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected index 238cbd0bc3b..9d54fb1cdd7 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjection.expected @@ -17,6 +17,9 @@ | SqlInjectionDapper.cs:58:42:58:46 | access to local variable query | SqlInjectionDapper.cs:57:86:57:94 | access to property Text : String | SqlInjectionDapper.cs:58:42:58:46 | access to local variable query | This query depends on $@. | SqlInjectionDapper.cs:57:86:57:94 | access to property Text : String | this TextBox text | | SqlInjectionDapper.cs:67:42:67:46 | access to local variable query | SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | SqlInjectionDapper.cs:67:42:67:46 | access to local variable query | This query depends on $@. | SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | this TextBox text | | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | This query depends on $@. | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | this TextBox text | +| SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | This query depends on $@. | SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | this ASP.NET user input | +| SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | This query depends on $@. | SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | this ASP.NET user input | +| SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | This query depends on $@. | SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | this ASP.NET user input | | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | This query depends on $@. | SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | this ASP.NET user input | | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | This query depends on $@. | SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | this ASP.NET user input | | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | This query depends on $@. | SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | this ASP.NET user input | @@ -27,43 +30,43 @@ edges | SecondOrderSqlInjection.cs:20:31:20:44 | access to local variable customerReader : SqlDataReader | SecondOrderSqlInjection.cs:25:119:25:132 | access to local variable customerReader : SqlDataReader | provenance | | | SecondOrderSqlInjection.cs:20:48:20:78 | call to method ExecuteReader : SqlDataReader | SecondOrderSqlInjection.cs:20:31:20:44 | access to local variable customerReader : SqlDataReader | provenance | | -| SecondOrderSqlInjection.cs:25:119:25:132 | access to local variable customerReader : SqlDataReader | SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | provenance | MaD:23 | -| SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | provenance | Sink:MaD:15 | +| SecondOrderSqlInjection.cs:25:119:25:132 | access to local variable customerReader : SqlDataReader | SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | provenance | MaD:26 | +| SecondOrderSqlInjection.cs:25:119:25:145 | call to method GetString : String | SecondOrderSqlInjection.cs:25:71:25:145 | ... + ... | provenance | Sink:MaD:18 | | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | provenance | | -| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:19 | -| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:18 | +| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:22 | +| SecondOrderSqlInjection.cs:33:36:33:78 | object creation of type FileStream : FileStream | SecondOrderSqlInjection.cs:33:31:33:32 | access to local variable fs : FileStream | provenance | Src:MaD:21 | | SecondOrderSqlInjection.cs:35:37:35:38 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | provenance | | | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | SecondOrderSqlInjection.cs:35:37:35:38 | access to local variable sr : StreamReader | provenance | | -| SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | provenance | MaD:25 | +| SecondOrderSqlInjection.cs:35:59:35:60 | access to local variable fs : FileStream | SecondOrderSqlInjection.cs:35:42:35:76 | object creation of type StreamReader : StreamReader | provenance | MaD:28 | | SecondOrderSqlInjection.cs:38:29:38:31 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | provenance | | -| SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | provenance | MaD:26 | +| SecondOrderSqlInjection.cs:38:35:38:36 | access to local variable sr : StreamReader | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | provenance | MaD:29 | | SecondOrderSqlInjection.cs:38:35:38:47 | call to method ReadLine : String | SecondOrderSqlInjection.cs:38:29:38:31 | access to local variable sql : String | provenance | | -| SecondOrderSqlInjection.cs:40:25:40:27 | access to local variable sql : String | SecondOrderSqlInjection.cs:45:57:45:59 | access to local variable sql | provenance | Sink:MaD:10 | -| SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | provenance | MaD:28 | +| SecondOrderSqlInjection.cs:40:25:40:27 | access to local variable sql : String | SecondOrderSqlInjection.cs:45:57:45:59 | access to local variable sql | provenance | Sink:MaD:13 | +| SecondOrderSqlInjection.cs:40:31:40:33 | access to local variable sql : String | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | provenance | MaD:31 | | SecondOrderSqlInjection.cs:40:31:40:40 | call to method Trim : String | SecondOrderSqlInjection.cs:40:25:40:27 | access to local variable sql : String | provenance | | -| SqlInjection.cs:37:21:37:26 | access to local variable query1 : String | SqlInjection.cs:39:50:39:55 | access to local variable query1 | provenance | Sink:MaD:17 | -| SqlInjection.cs:38:21:38:35 | access to field categoryTextBox : TextBox | SqlInjection.cs:38:21:38:40 | access to property Text : String | provenance | MaD:27 | +| SqlInjection.cs:37:21:37:26 | access to local variable query1 : String | SqlInjection.cs:39:50:39:55 | access to local variable query1 | provenance | Sink:MaD:20 | +| SqlInjection.cs:38:21:38:35 | access to field categoryTextBox : TextBox | SqlInjection.cs:38:21:38:40 | access to property Text : String | provenance | MaD:30 | | SqlInjection.cs:38:21:38:40 | access to property Text : String | SqlInjection.cs:37:21:37:26 | access to local variable query1 : String | provenance | | -| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:74:56:74:61 | access to local variable query1 | provenance | Sink:MaD:7 | -| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:75:55:75:60 | access to local variable query1 | provenance | Sink:MaD:8 | -| SqlInjection.cs:73:33:73:47 | access to field categoryTextBox : TextBox | SqlInjection.cs:73:33:73:52 | access to property Text : String | provenance | MaD:27 | +| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:74:56:74:61 | access to local variable query1 | provenance | Sink:MaD:10 | +| SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | SqlInjection.cs:75:55:75:60 | access to local variable query1 | provenance | Sink:MaD:11 | +| SqlInjection.cs:73:33:73:47 | access to field categoryTextBox : TextBox | SqlInjection.cs:73:33:73:52 | access to property Text : String | provenance | MaD:30 | | SqlInjection.cs:73:33:73:52 | access to property Text : String | SqlInjection.cs:72:25:72:30 | access to local variable query1 : String | provenance | | -| SqlInjection.cs:86:21:86:26 | access to local variable query1 : String | SqlInjection.cs:88:50:88:55 | access to local variable query1 | provenance | Sink:MaD:17 | +| SqlInjection.cs:86:21:86:26 | access to local variable query1 : String | SqlInjection.cs:88:50:88:55 | access to local variable query1 | provenance | Sink:MaD:20 | | SqlInjection.cs:87:21:87:29 | access to property Text : String | SqlInjection.cs:86:21:86:26 | access to local variable query1 : String | provenance | | -| SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | SqlInjection.cs:98:42:98:52 | access to local variable queryString | provenance | Sink:MaD:14 | +| SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | SqlInjection.cs:98:42:98:52 | access to local variable queryString | provenance | Sink:MaD:17 | | SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | SqlInjection.cs:98:42:98:52 | access to local variable queryString : String | provenance | | | SqlInjection.cs:97:21:97:29 | access to property Text : String | SqlInjection.cs:96:21:96:31 | access to local variable queryString : String | provenance | | -| SqlInjection.cs:98:21:98:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:99:50:99:52 | access to local variable cmd | provenance | Sink:MaD:16 | +| SqlInjection.cs:98:21:98:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:99:50:99:52 | access to local variable cmd | provenance | Sink:MaD:19 | | SqlInjection.cs:98:27:98:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:98:21:98:23 | access to local variable cmd : SqlCommand | provenance | | -| SqlInjection.cs:98:42:98:52 | access to local variable queryString : String | SqlInjection.cs:98:27:98:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:22 | -| SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | SqlInjection.cs:109:42:109:52 | access to local variable queryString | provenance | Sink:MaD:14 | +| SqlInjection.cs:98:42:98:52 | access to local variable queryString : String | SqlInjection.cs:98:27:98:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:25 | +| SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | SqlInjection.cs:109:42:109:52 | access to local variable queryString | provenance | Sink:MaD:17 | | SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | SqlInjection.cs:109:42:109:52 | access to local variable queryString : String | provenance | | -| SqlInjection.cs:108:21:108:38 | call to method ReadLine : String | SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | provenance | Src:MaD:20 | -| SqlInjection.cs:109:21:109:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:110:50:110:52 | access to local variable cmd | provenance | Sink:MaD:16 | +| SqlInjection.cs:108:21:108:38 | call to method ReadLine : String | SqlInjection.cs:107:21:107:31 | access to local variable queryString : String | provenance | Src:MaD:23 | +| SqlInjection.cs:109:21:109:23 | access to local variable cmd : SqlCommand | SqlInjection.cs:110:50:110:52 | access to local variable cmd | provenance | Sink:MaD:19 | | SqlInjection.cs:109:27:109:53 | object creation of type SqlCommand : SqlCommand | SqlInjection.cs:109:21:109:23 | access to local variable cmd : SqlCommand | provenance | | -| SqlInjection.cs:109:42:109:52 | access to local variable queryString : String | SqlInjection.cs:109:27:109:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:22 | +| SqlInjection.cs:109:42:109:52 | access to local variable queryString : String | SqlInjection.cs:109:27:109:53 | object creation of type SqlCommand : SqlCommand | provenance | MaD:25 | | SqlInjection.cs:122:73:122:78 | userId : String | SqlInjection.cs:125:20:125:24 | access to local variable query : String | provenance | | -| SqlInjection.cs:125:20:125:24 | access to local variable query : String | SqlInjection.cs:129:53:129:57 | access to local variable query | provenance | Sink:MaD:15 | +| SqlInjection.cs:125:20:125:24 | access to local variable query : String | SqlInjection.cs:129:53:129:57 | access to local variable query | provenance | Sink:MaD:18 | | SqlInjectionDapper.cs:20:21:20:25 | access to local variable query : String | SqlInjectionDapper.cs:21:55:21:59 | access to local variable query | provenance | Sink:MaD:4 | | SqlInjectionDapper.cs:20:86:20:94 | access to property Text : String | SqlInjectionDapper.cs:20:21:20:25 | access to local variable query : String | provenance | | | SqlInjectionDapper.cs:29:21:29:25 | access to local variable query : String | SqlInjectionDapper.cs:30:66:30:70 | access to local variable query | provenance | Sink:MaD:5 | @@ -78,27 +81,36 @@ edges | SqlInjectionDapper.cs:66:86:66:94 | access to property Text : String | SqlInjectionDapper.cs:66:21:66:25 | access to local variable query : String | provenance | | | SqlInjectionDapper.cs:75:21:75:25 | access to local variable query : String | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | provenance | | | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | SqlInjectionDapper.cs:75:21:75:25 | access to local variable query : String | provenance | | -| SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | provenance | MaD:27 Sink:MaD:9 | -| SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | SqlInjectionSqlite.cs:44:45:44:47 | access to local variable cmd | provenance | Sink:MaD:11 | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | provenance | MaD:30 Sink:MaD:8 | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | provenance | MaD:30 Sink:MaD:9 | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | provenance | MaD:30 Sink:MaD:7 | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | provenance | MaD:30 Sink:MaD:8 | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | provenance | MaD:30 Sink:MaD:9 | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | provenance | MaD:30 Sink:MaD:7 | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | provenance | MaD:30 Sink:MaD:8 | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | provenance | MaD:30 Sink:MaD:9 | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | provenance | MaD:30 Sink:MaD:7 | +| SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | provenance | MaD:30 Sink:MaD:12 | +| SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | SqlInjectionSqlite.cs:44:45:44:47 | access to local variable cmd | provenance | Sink:MaD:14 | | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | provenance | | -| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | provenance | MaD:27 Sink:MaD:10 | -| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | provenance | MaD:27 | -| SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | provenance | MaD:21 | -| SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | provenance | MaD:27 Sink:MaD:12 | -| SqlInjectionSqlite.cs:39:45:39:57 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:39:45:39:62 | access to property Text | provenance | MaD:27 Sink:MaD:13 | +| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text | provenance | MaD:30 Sink:MaD:13 | +| SqlInjectionSqlite.cs:24:41:24:53 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | provenance | MaD:30 | +| SqlInjectionSqlite.cs:24:41:24:58 | access to property Text : String | SqlInjectionSqlite.cs:24:23:24:71 | object creation of type SQLiteCommand : SQLiteCommand | provenance | MaD:24 | +| SqlInjectionSqlite.cs:33:49:33:61 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:33:49:33:66 | access to property Text | provenance | MaD:30 Sink:MaD:15 | +| SqlInjectionSqlite.cs:39:45:39:57 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:39:45:39:62 | access to property Text | provenance | MaD:30 Sink:MaD:16 | | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | provenance | | -| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:19 | -| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:18 | -| SqlInjectionSqlite.cs:49:51:49:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | provenance | MaD:27 | -| SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | provenance | MaD:24 | +| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:22 | +| SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | SqlInjectionSqlite.cs:49:31:49:32 | access to local variable fs : FileStream | provenance | Src:MaD:21 | +| SqlInjectionSqlite.cs:49:51:49:63 | access to field untrustedData : TextBox | SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | provenance | MaD:30 | +| SqlInjectionSqlite.cs:49:51:49:68 | access to property Text : String | SqlInjectionSqlite.cs:49:36:49:84 | object creation of type FileStream : FileStream | provenance | MaD:27 | | SqlInjectionSqlite.cs:51:37:51:38 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | provenance | | | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | SqlInjectionSqlite.cs:51:37:51:38 | access to local variable sr : StreamReader | provenance | | -| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | provenance | MaD:25 | +| SqlInjectionSqlite.cs:51:59:51:60 | access to local variable fs : FileStream | SqlInjectionSqlite.cs:51:42:51:76 | object creation of type StreamReader : StreamReader | provenance | MaD:28 | | SqlInjectionSqlite.cs:54:29:54:31 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | provenance | | -| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | provenance | MaD:26 | +| SqlInjectionSqlite.cs:54:35:54:36 | access to local variable sr : StreamReader | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | provenance | MaD:29 | | SqlInjectionSqlite.cs:54:35:54:47 | call to method ReadLine : String | SqlInjectionSqlite.cs:54:29:54:31 | access to local variable sql : String | provenance | | -| SqlInjectionSqlite.cs:56:25:56:27 | access to local variable sql : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | provenance | Sink:MaD:10 | -| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | provenance | MaD:28 | +| SqlInjectionSqlite.cs:56:25:56:27 | access to local variable sql : String | SqlInjectionSqlite.cs:61:53:61:55 | access to local variable sql | provenance | Sink:MaD:13 | +| SqlInjectionSqlite.cs:56:31:56:33 | access to local variable sql : String | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | provenance | MaD:31 | | SqlInjectionSqlite.cs:56:31:56:40 | call to method Trim : String | SqlInjectionSqlite.cs:56:25:56:27 | access to local variable sql : String | provenance | | models | 1 | Sink: Dapper; SqlMapper; false; ExecuteAsync; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | @@ -107,28 +119,31 @@ models | 4 | Sink: Dapper; SqlMapper; false; Query; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Boolean,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | | 5 | Sink: Dapper; SqlMapper; false; QueryAsync; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | | 6 | Sink: Dapper; SqlMapper; false; QueryFirstAsync; (System.Data.IDbConnection,System.String,System.Object,System.Data.IDbTransaction,System.Nullable,System.Nullable); ; Argument[1]; sql-injection; manual | -| 7 | Sink: System.Data.Entity; Database; false; ExecuteSqlCommand; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | -| 8 | Sink: System.Data.Entity; Database; false; SqlQuery; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | -| 9 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String); ; Argument[0]; sql-injection; manual | -| 10 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | -| 11 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.Data.SQLite.SQLiteCommand); ; Argument[0]; sql-injection; manual | -| 12 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | -| 13 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.String); ; Argument[0]; sql-injection; manual | -| 14 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; sql-injection; manual | -| 15 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | -| 16 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.Data.SqlClient.SqlCommand); ; Argument[0]; sql-injection; manual | -| 17 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | -| 18 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file-write; manual | -| 19 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file; manual | -| 20 | Source: System; Console; false; ReadLine; ; ; ReturnValue; stdin; manual | -| 21 | Summary: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; Argument[this]; taint; manual | -| 22 | Summary: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; Argument[this]; taint; manual | -| 23 | Summary: System.Data; IDataRecord; true; GetString; (System.Int32); ; Argument[this]; ReturnValue; taint; manual | -| 24 | Summary: System.IO; FileStream; false; FileStream; (System.String,System.IO.FileMode); ; Argument[0]; Argument[this]; taint; manual | -| 25 | Summary: System.IO; StreamReader; false; StreamReader; (System.IO.Stream,System.Text.Encoding); ; Argument[0]; Argument[this]; taint; manual | -| 26 | Summary: System.IO; TextReader; true; ReadLine; (); ; Argument[this]; ReturnValue; taint; manual | -| 27 | Summary: System.Web.UI.WebControls; TextBox; false; get_Text; (); ; Argument[this]; ReturnValue; taint; manual | -| 28 | Summary: System; String; false; Trim; (); ; Argument[this]; ReturnValue; taint; manual | +| 7 | Sink: NHibernate.Impl; AbstractSessionImpl; true; CreateSQLQuery; (System.String); ; Argument[0]; sql-injection; manual | +| 8 | Sink: NHibernate; ISession; true; CreateSQLQuery; (System.String); ; Argument[0]; sql-injection; manual | +| 9 | Sink: NHibernate; IStatelessSession; true; CreateSQLQuery; (System.String); ; Argument[0]; sql-injection; manual | +| 10 | Sink: System.Data.Entity; Database; false; ExecuteSqlCommand; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | +| 11 | Sink: System.Data.Entity; Database; false; SqlQuery; (System.String,System.Object[]); ; Argument[0]; sql-injection; manual | +| 12 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String); ; Argument[0]; sql-injection; manual | +| 13 | Sink: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | +| 14 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.Data.SQLite.SQLiteCommand); ; Argument[0]; sql-injection; manual | +| 15 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; sql-injection; manual | +| 16 | Sink: System.Data.SQLite; SQLiteDataAdapter; false; SQLiteDataAdapter; (System.String,System.String); ; Argument[0]; sql-injection; manual | +| 17 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; sql-injection; manual | +| 18 | Sink: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | +| 19 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.Data.SqlClient.SqlCommand); ; Argument[0]; sql-injection; manual | +| 20 | Sink: System.Data.SqlClient; SqlDataAdapter; false; SqlDataAdapter; (System.String,System.Data.SqlClient.SqlConnection); ; Argument[0]; sql-injection; manual | +| 21 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file-write; manual | +| 22 | Source: System.IO; FileStream; false; FileStream; ; ; Argument[this]; file; manual | +| 23 | Source: System; Console; false; ReadLine; ; ; ReturnValue; stdin; manual | +| 24 | Summary: System.Data.SQLite; SQLiteCommand; false; SQLiteCommand; (System.String,System.Data.SQLite.SQLiteConnection); ; Argument[0]; Argument[this]; taint; manual | +| 25 | Summary: System.Data.SqlClient; SqlCommand; false; SqlCommand; (System.String); ; Argument[0]; Argument[this]; taint; manual | +| 26 | Summary: System.Data; IDataRecord; true; GetString; (System.Int32); ; Argument[this]; ReturnValue; taint; manual | +| 27 | Summary: System.IO; FileStream; false; FileStream; (System.String,System.IO.FileMode); ; Argument[0]; Argument[this]; taint; manual | +| 28 | Summary: System.IO; StreamReader; false; StreamReader; (System.IO.Stream,System.Text.Encoding); ; Argument[0]; Argument[this]; taint; manual | +| 29 | Summary: System.IO; TextReader; true; ReadLine; (); ; Argument[this]; ReturnValue; taint; manual | +| 30 | Summary: System.Web.UI.WebControls; TextBox; false; get_Text; (); ; Argument[this]; ReturnValue; taint; manual | +| 31 | Summary: System; String; false; Trim; (); ; Argument[this]; ReturnValue; taint; manual | nodes | SecondOrderSqlInjection.cs:20:31:20:44 | access to local variable customerReader : SqlDataReader | semmle.label | access to local variable customerReader : SqlDataReader | | SecondOrderSqlInjection.cs:20:48:20:78 | call to method ExecuteReader : SqlDataReader | semmle.label | call to method ExecuteReader : SqlDataReader | @@ -197,6 +212,12 @@ nodes | SqlInjectionDapper.cs:75:21:75:25 | access to local variable query : String | semmle.label | access to local variable query : String | | SqlInjectionDapper.cs:75:86:75:94 | access to property Text : String | semmle.label | access to property Text : String | | SqlInjectionDapper.cs:77:52:77:56 | access to local variable query | semmle.label | access to local variable query | +| SqlInjectionNHibernate.cs:17:36:17:48 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | +| SqlInjectionNHibernate.cs:17:36:17:53 | access to property Text | semmle.label | access to property Text | +| SqlInjectionNHibernate.cs:19:45:19:57 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | +| SqlInjectionNHibernate.cs:19:45:19:62 | access to property Text | semmle.label | access to property Text | +| SqlInjectionNHibernate.cs:21:33:21:45 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | +| SqlInjectionNHibernate.cs:21:33:21:50 | access to property Text | semmle.label | access to property Text | | SqlInjectionSqlite.cs:19:51:19:63 | access to field untrustedData : TextBox | semmle.label | access to field untrustedData : TextBox | | SqlInjectionSqlite.cs:19:51:19:68 | access to property Text | semmle.label | access to property Text | | SqlInjectionSqlite.cs:24:17:24:19 | access to local variable cmd : SQLiteCommand | semmle.label | access to local variable cmd : SQLiteCommand | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs new file mode 100644 index 00000000000..3493891abb2 --- /dev/null +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/SqlInjectionNHibernate.cs @@ -0,0 +1,24 @@ +using System; + +namespace TestNHibernate +{ + using System.Data; + using System.IO; + using System.Text; + using System.Web.UI.WebControls; + + class SqlInjection + { + private string connectionString; + public TextBox untrustedData; + + public void InjectUntrustedData(NHibernate.ISession session, NHibernate.IStatelessSession statelessSession, NHibernate.Impl.AbstractSessionImpl impl) + { + session.CreateSQLQuery(untrustedData.Text); // $ Alert[cs/sql-injection] + + statelessSession.CreateSQLQuery(untrustedData.Text); // $ Alert[cs/sql-injection] + + impl.CreateSQLQuery(untrustedData.Text); // $ Alert[cs/sql-injection] + } + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-089/options b/csharp/ql/test/query-tests/Security Features/CWE-089/options index 77da3f8c8fb..7cdc544e958 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-089/options +++ b/csharp/ql/test/query-tests/Security Features/CWE-089/options @@ -4,3 +4,4 @@ semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resour semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj semmle-extractor-options: ${testdir}/../../../resources/stubs/System.Windows.cs semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/NHibernate/5.5.2/NHibernate.csproj diff --git a/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj b/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj +++ b/csharp/ql/test/resources/stubs/Amazon.Lambda.APIGatewayEvents/2.7.1/Amazon.Lambda.APIGatewayEvents.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj b/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj +++ b/csharp/ql/test/resources/stubs/Amazon.Lambda.Core/2.5.0/Amazon.Lambda.Core.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj index 38998301525..b1003793c72 100644 --- a/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/Antlr3.Runtime/3.5.1/Antlr3.Runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj index a440919775d..4be1ba89cb8 100644 --- a/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj +++ b/csharp/ql/test/resources/stubs/Azure.Core/1.38.0/Azure.Core.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj index e16e446b3a1..3ff33c8434f 100644 --- a/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj +++ b/csharp/ql/test/resources/stubs/Azure.Identity/1.11.4/Azure.Identity.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj b/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj +++ b/csharp/ql/test/resources/stubs/Dapper/2.1.35/Dapper.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj b/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj index edca0c61e77..2485c5768e3 100644 --- a/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj +++ b/csharp/ql/test/resources/stubs/EntityFramework/6.5.1/EntityFramework.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj index eedd49158a1..032e2630cd1 100644 --- a/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj +++ b/csharp/ql/test/resources/stubs/Iesi.Collections/4.0.4/Iesi.Collections.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj b/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Bcl.AsyncInterfaces/1.1.1/Microsoft.Bcl.AsyncInterfaces.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj b/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Bcl.Cryptography/9.0.4/Microsoft.Bcl.Cryptography.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.CSharp/4.7.0/Microsoft.CSharp.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient.SNI.runtime/6.0.2/Microsoft.Data.SqlClient.SNI.runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj index 457f65b723b..b01103f8746 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Data.SqlClient/6.0.2/Microsoft.Data.SqlClient.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj index ba6857adb2b..144dee9836f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Abstractions/9.0.4/Microsoft.Extensions.Caching.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj index 611dcc85a91..b3ef41ed560 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Caching.Memory/9.0.4/Microsoft.Extensions.Caching.Memory.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj index bc1dd1b3547..675855d6169 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Abstractions/8.0.0/Microsoft.Extensions.Configuration.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj index 27f68066b0c..b45625dcaf9 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration.Binder/8.0.0/Microsoft.Extensions.Configuration.Binder.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj index 3a3d95c8025..e491cc391cf 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Configuration/8.0.0/Microsoft.Extensions.Configuration.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0/Microsoft.Extensions.DependencyInjection.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection.Abstractions/9.0.4/Microsoft.Extensions.DependencyInjection.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj index d40ad81bae2..9c117ab0052 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.DependencyInjection/8.0.0/Microsoft.Extensions.DependencyInjection.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj index 5e2dafdbf45..c6cb5c63e8f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics.Abstractions/8.0.0/Microsoft.Extensions.Diagnostics.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj index 9d6ce5a7870..15a14363eda 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Diagnostics/8.0.0/Microsoft.Extensions.Diagnostics.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj index ad6270c7d19..361c7c439cb 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Http/8.0.0/Microsoft.Extensions.Http.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj index d40ad81bae2..9c117ab0052 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/8.0.0/Microsoft.Extensions.Logging.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj index 24dcab514cf..26c5c626f38 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging.Abstractions/9.0.4/Microsoft.Extensions.Logging.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj index 52843546756..6f6268b46f1 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Logging/8.0.0/Microsoft.Extensions.Logging.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj index 8f14f384fd6..da4c02d67bc 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0/Microsoft.Extensions.Options.ConfigurationExtensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj index 477139a9ca3..ab32cef0094 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/8.0.0/Microsoft.Extensions.Options.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj index be3f78d87fc..3232e838163 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Options/9.0.4/Microsoft.Extensions.Options.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/8.0.0/Microsoft.Extensions.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Extensions.Primitives/9.0.4/Microsoft.Extensions.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj index a085743bd52..8b04793470c 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client.Extensions.Msal/4.61.3/Microsoft.Identity.Client.Extensions.Msal.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj index 3951c0cd04f..15c39f9afd8 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Identity.Client/4.61.3/Microsoft.Identity.Client.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Abstractions/7.5.0/Microsoft.IdentityModel.Abstractions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj index 3f7a9eeb43f..2f8d8081f4f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.JsonWebTokens/7.5.0/Microsoft.IdentityModel.JsonWebTokens.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj index ccae125b498..a3ab1ba0587 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Logging/7.5.0/Microsoft.IdentityModel.Logging.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj index 4fcb6a92ab7..e1b68d55db9 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols.OpenIdConnect/7.5.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj index 3f7a9eeb43f..2f8d8081f4f 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Protocols/7.5.0/Microsoft.IdentityModel.Protocols.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj index 524740979fa..5355c82a2a2 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.IdentityModel.Tokens/7.5.0/Microsoft.IdentityModel.Tokens.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Platforms/3.1.0/Microsoft.NETCore.Platforms.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.NETCore.Targets/1.1.0/Microsoft.NETCore.Targets.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.SqlServer.Server/1.0.0/Microsoft.SqlServer.Server.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj b/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Win32.Primitives/4.3.0/Microsoft.Win32.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj b/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj +++ b/csharp/ql/test/resources/stubs/Microsoft.Win32.SystemEvents/9.0.1/Microsoft.Win32.SystemEvents.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj b/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj index 273e29bbe55..456dbed0286 100644 --- a/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj +++ b/csharp/ql/test/resources/stubs/NETStandard.Library/1.6.1/NETStandard.Library.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj b/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj index c327bef839a..d7190e71fe2 100644 --- a/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj +++ b/csharp/ql/test/resources/stubs/NHibernate/5.5.2/NHibernate.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj +++ b/csharp/ql/test/resources/stubs/Newtonsoft.Json/13.0.3/Newtonsoft.Json.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj index c1ed1379cbd..decc44b4c3c 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj +++ b/csharp/ql/test/resources/stubs/Remotion.Linq.EagerFetching/2.2.0/Remotion.Linq.EagerFetching.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj index d6c4929252c..bcce1168ac5 100644 --- a/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj +++ b/csharp/ql/test/resources/stubs/Remotion.Linq/2.2.0/Remotion.Linq.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj index 086203dafdc..f85faa8f7c9 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Client/8.5.2/ServiceStack.Client.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj index 738ed3be534..2b25400ea6a 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Common/8.5.2/ServiceStack.Common.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Interfaces/8.5.2/ServiceStack.Interfaces.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj index c091c7d032f..597c06cbe84 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite.SqlServer/8.5.2/ServiceStack.OrmLite.SqlServer.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj index 7138015c599..dc9c0b1497b 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.OrmLite/8.5.2/ServiceStack.OrmLite.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj b/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj index f52b7af1326..72a6682fc4d 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack.Text/8.5.2/ServiceStack.Text.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj b/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj index 5fc24d19b67..4dbb285aaa5 100644 --- a/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj +++ b/csharp/ql/test/resources/stubs/ServiceStack/8.5.2/ServiceStack.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj b/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj +++ b/csharp/ql/test/resources/stubs/Stub.System.Data.SQLite.Core.NetStandard/1.0.119/Stub.System.Data.SQLite.Core.NetStandard.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj b/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj +++ b/csharp/ql/test/resources/stubs/System.AppContext/4.3.0/System.AppContext.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj b/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj index 461a9c76cd8..d6f8f78264e 100644 --- a/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj +++ b/csharp/ql/test/resources/stubs/System.Buffers/4.3.0/System.Buffers.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj index af9830f6d13..758bf53c79a 100644 --- a/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj +++ b/csharp/ql/test/resources/stubs/System.ClientModel/1.0.0/System.ClientModel.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj b/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj +++ b/csharp/ql/test/resources/stubs/System.CodeDom/6.0.0/System.CodeDom.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj b/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj index e14050e856c..bc793c64812 100644 --- a/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj +++ b/csharp/ql/test/resources/stubs/System.Collections.Concurrent/4.3.0/System.Collections.Concurrent.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj b/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj index c90f517b0d7..2349fd41cce 100644 --- a/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj +++ b/csharp/ql/test/resources/stubs/System.Collections.NonGeneric/4.3.0/System.Collections.NonGeneric.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj b/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj +++ b/csharp/ql/test/resources/stubs/System.Collections/4.3.0/System.Collections.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj b/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj +++ b/csharp/ql/test/resources/stubs/System.ComponentModel.Annotations/5.0.0/System.ComponentModel.Annotations.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj b/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj index a3f8fc48b0c..d9054dba10f 100644 --- a/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.ComponentModel.Primitives/4.3.0/System.ComponentModel.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj b/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj +++ b/csharp/ql/test/resources/stubs/System.ComponentModel/4.3.0/System.ComponentModel.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj index 8017e89ccf2..992d2312bd5 100644 --- a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.1/System.Configuration.ConfigurationManager.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj index 8017e89ccf2..992d2312bd5 100644 --- a/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Configuration.ConfigurationManager/9.0.4/System.Configuration.ConfigurationManager.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj b/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj index 9b785dfa937..28e7058a12e 100644 --- a/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj +++ b/csharp/ql/test/resources/stubs/System.Console/4.3.0/System.Console.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj b/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj index ded2d0d5626..0e4bf5f125b 100644 --- a/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.OleDb/9.0.1/System.Data.OleDb.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj b/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj index f28b2ba64e4..5b0ee2f2696 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SQLite.Core/1.0.119/System.Data.SQLite.Core.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj b/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj index 73e466e0806..5497fba3f3b 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SQLite.EF6/1.0.119/System.Data.SQLite.EF6.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj b/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj index a9338476133..d425aed68d5 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SQLite/1.0.119/System.Data.SQLite.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj index df3e3803d8d..85741278775 100644 --- a/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj +++ b/csharp/ql/test/resources/stubs/System.Data.SqlClient/4.9.0/System.Data.SqlClient.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.Debug/4.3.0/System.Diagnostics.Debug.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj index 44f3b6c98d1..3c0ecb9c83e 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/6.0.1/System.Diagnostics.DiagnosticSource.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.DiagnosticSource/8.0.0/System.Diagnostics.DiagnosticSource.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.1/System.Diagnostics.EventLog.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.EventLog/9.0.4/System.Diagnostics.EventLog.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj index bb528bfa826..8daf53f8044 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.PerformanceCounter/9.0.1/System.Diagnostics.PerformanceCounter.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.Tools/4.3.0/System.Diagnostics.Tools.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj b/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj +++ b/csharp/ql/test/resources/stubs/System.Diagnostics.Tracing/4.3.0/System.Diagnostics.Tracing.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj b/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj index 342c6102919..2a731d89815 100644 --- a/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj +++ b/csharp/ql/test/resources/stubs/System.Drawing.Common/9.0.1/System.Drawing.Common.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj b/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj index d22ce2d8ece..c295597573c 100644 --- a/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/System.Dynamic.Runtime/4.3.0/System.Dynamic.Runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj b/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj index 0dfbf223dba..4a713846d3b 100644 --- a/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj +++ b/csharp/ql/test/resources/stubs/System.Globalization.Calendars/4.3.0/System.Globalization.Calendars.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj index 5e5d3cd90e9..d0fc9d064fe 100644 --- a/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Globalization.Extensions/4.3.0/System.Globalization.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj b/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj +++ b/csharp/ql/test/resources/stubs/System.Globalization/4.3.0/System.Globalization.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj b/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj index aa49337117c..84d7216ee2d 100644 --- a/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.Compression.ZipFile/4.3.0/System.IO.Compression.ZipFile.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj b/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj index f3323292dcd..5af530f71b3 100644 --- a/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.Compression/4.3.0/System.IO.Compression.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj b/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.FileSystem.Primitives/4.3.0/System.IO.FileSystem.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj b/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj index c5d1e07015a..2d8600a5a32 100644 --- a/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj +++ b/csharp/ql/test/resources/stubs/System.IO.FileSystem/4.3.0/System.IO.FileSystem.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj b/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj index 531a3f6347c..cf4711e4471 100644 --- a/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj +++ b/csharp/ql/test/resources/stubs/System.IO/4.3.0/System.IO.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj index 2f5d2330dc9..ad74be7ad08 100644 --- a/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj +++ b/csharp/ql/test/resources/stubs/System.IdentityModel.Tokens.Jwt/7.5.0/System.IdentityModel.Tokens.Jwt.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj b/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj index 2942048df30..a44d7b8937e 100644 --- a/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj +++ b/csharp/ql/test/resources/stubs/System.Linq.Expressions/4.3.0/System.Linq.Expressions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj b/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj index 1b9179010ea..d80dbdd4d7c 100644 --- a/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj +++ b/csharp/ql/test/resources/stubs/System.Linq.Queryable/4.0.1/System.Linq.Queryable.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj b/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj index df71d560e13..5e81708b4cc 100644 --- a/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj +++ b/csharp/ql/test/resources/stubs/System.Linq/4.3.0/System.Linq.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj index c444f79ac6f..c9b6459dcb3 100644 --- a/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj +++ b/csharp/ql/test/resources/stubs/System.Memory.Data/1.0.2/System.Memory.Data.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj +++ b/csharp/ql/test/resources/stubs/System.Memory/4.5.4/System.Memory.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj b/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj +++ b/csharp/ql/test/resources/stubs/System.Memory/4.6.0/System.Memory.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj b/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj index 8b07cde32bf..36246904dc0 100644 --- a/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj +++ b/csharp/ql/test/resources/stubs/System.Net.Http/4.3.0/System.Net.Http.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj index 1f3b6fd84a8..13849284ebd 100644 --- a/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Net.Primitives/4.3.0/System.Net.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj b/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj index cf920ee7e92..0644b1a5fc3 100644 --- a/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj +++ b/csharp/ql/test/resources/stubs/System.Net.Sockets/4.3.0/System.Net.Sockets.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj b/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj +++ b/csharp/ql/test/resources/stubs/System.Numerics.Vectors/4.5.0/System.Numerics.Vectors.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj b/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj index 6aa1406d634..48f65b0b017 100644 --- a/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj +++ b/csharp/ql/test/resources/stubs/System.ObjectModel/4.3.0/System.ObjectModel.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj index 80dffb6c91a..b5752b6f67d 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Emit.ILGeneration/4.3.0/System.Reflection.Emit.ILGeneration.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Emit.Lightweight/4.7.0/System.Reflection.Emit.Lightweight.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Emit/4.7.0/System.Reflection.Emit.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj index 3418538bc44..84fe0ba3fd9 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Extensions/4.3.0/System.Reflection.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.Primitives/4.3.0/System.Reflection.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj b/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection.TypeExtensions/4.7.0/System.Reflection.TypeExtensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj b/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj index 0869c160e2d..3c5a8575fb7 100644 --- a/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj +++ b/csharp/ql/test/resources/stubs/System.Reflection/4.3.0/System.Reflection.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj b/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj index 195c1b3ba7c..7059a756745 100644 --- a/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj +++ b/csharp/ql/test/resources/stubs/System.Resources.ResourceManager/4.3.0/System.Resources.ResourceManager.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.CompilerServices.Unsafe/6.0.0/System.Runtime.CompilerServices.Unsafe.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Extensions/4.3.0/System.Runtime.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Handles/4.3.0/System.Runtime.Handles.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj index 6f9c25eb744..3bcf3a63a77 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices.RuntimeInformation/4.3.0/System.Runtime.InteropServices.RuntimeInformation.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj index 2e413fd28d5..29b2e27579f 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.InteropServices/4.3.0/System.Runtime.InteropServices.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj index 57754ba8a4e..7391fce40cd 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Numerics/4.3.0/System.Runtime.Numerics.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj index 969789e7005..11b6e7e27e0 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Formatters/4.3.0/System.Runtime.Serialization.Formatters.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj index 296b55a60a8..a7640c74aa7 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime.Serialization.Primitives/4.3.0/System.Runtime.Serialization.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj b/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj +++ b/csharp/ql/test/resources/stubs/System.Runtime/4.3.0/System.Runtime.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj index 4c2a4eaf588..9f73adccf5d 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Algorithms/4.3.0/System.Security.Cryptography.Algorithms.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj index cadc9113fab..ed73cd974f7 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Cng/4.3.0/System.Security.Cryptography.Cng.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj index 8aa9b969d65..894b05f5b5d 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Csp/4.3.0/System.Security.Cryptography.Csp.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj index 4ee4e2b8093..27721f827a7 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Encoding/4.3.0/System.Security.Cryptography.Encoding.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj index 8ba6c5da32d..b8300780e8d 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.OpenSsl/4.3.0/System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Pkcs/9.0.4/System.Security.Cryptography.Pkcs.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj index 4ea09d97c5c..9d13c0aca7e 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.Primitives/4.3.0/System.Security.Cryptography.Primitives.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.1/System.Security.Cryptography.ProtectedData.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.ProtectedData/9.0.4/System.Security.Cryptography.ProtectedData.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj b/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj index 13e32293916..5b4bcef20f9 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Cryptography.X509Certificates/4.3.0/System.Security.Cryptography.X509Certificates.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj b/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj index e25e81c4c5f..da1d0207343 100644 --- a/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj +++ b/csharp/ql/test/resources/stubs/System.Security.Permissions/9.0.1/System.Security.Permissions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj index 8cc5decfb55..944efc80f30 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Encoding.Extensions/4.3.0/System.Text.Encoding.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj b/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Encoding/4.3.0/System.Text.Encoding.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj b/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Encodings.Web/4.7.2/System.Text.Encodings.Web.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj b/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.Json/4.7.2/System.Text.Json.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj b/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj index 05ae99d36ae..45b1e4e8f0e 100644 --- a/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj +++ b/csharp/ql/test/resources/stubs/System.Text.RegularExpressions/4.3.0/System.Text.RegularExpressions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj index 9719080f314..5fadc1ee521 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.3.0/System.Threading.Tasks.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks.Extensions/4.5.4/System.Threading.Tasks.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj b/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Tasks/4.3.0/System.Threading.Tasks.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj b/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj index 4ed1849a7e3..e03091cbb83 100644 --- a/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading.Timer/4.3.0/System.Threading.Timer.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj b/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj index a52b105bcb7..72f1cb505bb 100644 --- a/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj +++ b/csharp/ql/test/resources/stubs/System.Threading/4.3.0/System.Threading.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj b/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj +++ b/csharp/ql/test/resources/stubs/System.Windows.Extensions/9.0.1/System.Windows.Extensions.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj b/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj index 57b27b200a4..0b9b8f7afcc 100644 --- a/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj +++ b/csharp/ql/test/resources/stubs/System.Xml.ReaderWriter/4.3.0/System.Xml.ReaderWriter.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj b/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj index d594a8ea0f4..ccd05437277 100644 --- a/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj +++ b/csharp/ql/test/resources/stubs/System.Xml.XDocument/4.3.0/System.Xml.XDocument.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj index adf087e7314..6d21fd55022 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.AspNetCore.App/Microsoft.AspNetCore.App.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj index 396498c8261..dc08e6a07f7 100644 --- a/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj +++ b/csharp/ql/test/resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj index db0fe00833e..651bfd2c549 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.IO.Compression/4.3.0/runtime.native.System.IO.Compression.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Net.Http/4.3.0/runtime.native.System.Net.Http.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj index 27e7adb1b75..f2560c2ad2f 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.native.System.Security.Cryptography.Apple.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj index a864639497f..bb4a0f554a8 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj b/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj index 32b25ba435e..c1bb4d18f73 100644 --- a/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj +++ b/csharp/ql/test/resources/stubs/runtime.native.System/4.3.0/runtime.native.System.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj +++ b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj +++ b/csharp/ql/test/resources/stubs/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x64.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj b/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj index c7646fbae20..2be6995cd16 100644 --- a/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj +++ b/csharp/ql/test/resources/stubs/runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0/runtime.win-x86.runtime.native.System.Data.SqlClient.sni.csproj @@ -1,6 +1,6 @@ - net9.0 + net10.0 true bin\ false diff --git a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected index 7dcf3b4f877..b73eb6717e5 100644 --- a/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected +++ b/csharp/ql/test/utils/modeleditor/ApplicationModeEndpoints.expected @@ -1,12 +1,12 @@ -| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 9.0.0.0 | source | source | -| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | (System.Object) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | -| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 9.0.0.0 | neutral | source | +| NonPublicClass.cs:9:9:9:31 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:19:9:19:51 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:19:33:19:50 | call to method ReadLine | System | Console | ReadLine | () | true | System.Console | 10.0.0.0 | source | source | +| PublicClass.cs:24:9:24:46 | call to method Write | System | Console | Write | (System.Object) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicClass.cs:30:9:30:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicGenericClass.cs:9:9:9:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicGenericClass.cs:14:9:14:30 | call to method WriteLine | System | Console | WriteLine | (System.Object) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicGenericInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | +| PublicInterface.cs:13:9:13:30 | call to method WriteLine | System | Console | WriteLine | (System.String) | true | System.Console | 10.0.0.0 | neutral | source | diff --git a/csharp/scripts/create-extractor-pack.sh b/csharp/scripts/create-extractor-pack.sh index a1b5a044ebc..3003dd81172 100755 --- a/csharp/scripts/create-extractor-pack.sh +++ b/csharp/scripts/create-extractor-pack.sh @@ -21,7 +21,7 @@ mkdir -p extractor-pack mkdir -p extractor-pack/tools/${platform} function dotnet_publish { - dotnet publish --self-contained --configuration Release --runtime ${dotnet_platform} -p:RuntimeFrameworkVersion=9.0.5 $1 --output extractor-pack/tools/${platform} + dotnet publish --self-contained --configuration Release --runtime ${dotnet_platform} -p:RuntimeFrameworkVersion=10.0.0 $1 --output extractor-pack/tools/${platform} } dotnet tool restore diff --git a/csharp/scripts/gen-assembly-info.py b/csharp/scripts/gen-assembly-info.py index ca88f5e1683..9937477f70d 100644 --- a/csharp/scripts/gen-assembly-info.py +++ b/csharp/scripts/gen-assembly-info.py @@ -28,7 +28,7 @@ using System.Reflection; [assembly: AssemblyCompany("GitHub")] [assembly: AssemblyCopyright("Copyright © 2024 GitHub")] -[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] +[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")] """ output_file.write_text(output_file_contents) diff --git a/csharp/scripts/stubs/helpers.py b/csharp/scripts/stubs/helpers.py index f3810e4f8cc..28b73258c20 100644 --- a/csharp/scripts/stubs/helpers.py +++ b/csharp/scripts/stubs/helpers.py @@ -56,7 +56,7 @@ def remove_files(path, ext): def write_csproj_prefix(ioWrapper): ioWrapper.write('\n') ioWrapper.write(' \n') - ioWrapper.write(' net9.0\n') + ioWrapper.write(' net10.0\n') ioWrapper.write(' true\n') ioWrapper.write(' bin\\n') ioWrapper.write( @@ -73,7 +73,7 @@ class Generator: self.projectDirIn = os.path.join(self.workDir, self.projectNameIn) self.template = template print("\n* Creating new input project") - self.run_cmd(['dotnet', 'new', self.template, "-f", "net9.0", "--language", "C#", '--name', + self.run_cmd(['dotnet', 'new', self.template, "-f", "net10.0", "--language", "C#", '--name', self.projectNameIn, '--output', self.projectDirIn]) remove_files(self.projectDirIn, '.cs') @@ -118,7 +118,7 @@ class Generator: bqrsFile = os.path.join(rawOutputDir, outputName + '.bqrs') jsonFile = os.path.join(rawOutputDir, outputName + '.json') - sdk_version = '9.0.300' + sdk_version = '10.0.100' print("\n* Creating new global.json file and setting SDK to " + sdk_version) self.run_cmd(['dotnet', 'new', 'globaljson', '--force', '--sdk-version', sdk_version, '--output', self.workDir]) diff --git a/docs/codeql/reusables/supported-platforms.rst b/docs/codeql/reusables/supported-platforms.rst index 216e4c6a7c2..5e679da12fa 100644 --- a/docs/codeql/reusables/supported-platforms.rst +++ b/docs/codeql/reusables/supported-platforms.rst @@ -9,12 +9,12 @@ Ubuntu 24.04","x86-64" Windows,"Windows 10 / Windows Server 2019 - Windows 11 / Windows Server 2022","x86-64" - macOS,"macOS 13 Ventura + Windows 11 / Windows Server 2022/2025","x86-64" + macOS,"macOS 14 Sonoma - macOS 14 Sonoma + macOS 15 Sequoia - macOS 15 Sequoia","x86-64, arm64 (Apple Silicon) [1]_" + macOS 26 Tahoe","x86-64, arm64 (Apple Silicon) [1]_" .. container:: footnote-group diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 8dcfd1a5dc0..a51d9de265e 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -15,7 +15,7 @@ .NET Core up to 3.1 - .NET 5, .NET 6, .NET 7, .NET 8, .NET 9","``.sln``, ``.csproj``, ``.cs``, ``.cshtml``, ``.xaml``" + .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`` Java,"Java 7 to 25 [6]_","javac (OpenJDK and Oracle JDK), diff --git a/go/extractor/go.mod b/go/extractor/go.mod index e581fdb652c..2729c7dfcc5 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -9,8 +9,8 @@ toolchain go1.25.0 // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.30.0 - golang.org/x/tools v0.39.0 + golang.org/x/mod v0.31.0 + golang.org/x/tools v0.40.0 ) -require golang.org/x/sync v0.18.0 // indirect +require golang.org/x/sync v0.19.0 // indirect diff --git a/go/extractor/go.sum b/go/extractor/go.sum index 6579b482848..488d2003193 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -1,8 +1,8 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= -golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= -golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= -golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= -golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= +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.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= +golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index b4d2815a622..00273047253 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.38.md b/go/ql/consistency-queries/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +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 9ad62b33247..b14e9763a8d 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.37 +lastReleaseVersion: 1.0.38 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 164d4aefbed..8bb3c230c3e 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.38-dev +version: 1.0.39-dev groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 8b78244ad87..5f0fda7c3e6 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.5 + +No user-facing changes. + ## 5.0.4 No user-facing changes. diff --git a/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md b/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md index 7d6ca378a15..cf4b724dbd9 100644 --- a/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md +++ b/go/ql/lib/change-notes/2025-11-26-unexpected-frontend-errors-query-moved.md @@ -1,4 +1,4 @@ --- category: breaking --- -* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. +* The query `go/unexpected-frontend-error` has been moved from the `codeql/go-queries` query to the `codeql-go-consistency-queries` query pack. diff --git a/go/ql/lib/change-notes/released/5.0.5.md b/go/ql/lib/change-notes/released/5.0.5.md new file mode 100644 index 00000000000..be08f873636 --- /dev/null +++ b/go/ql/lib/change-notes/released/5.0.5.md @@ -0,0 +1,3 @@ +## 5.0.5 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 8cb0167caf0..02e5f00fa9e 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.4 +lastReleaseVersion: 5.0.5 diff --git a/go/ql/lib/ext/empty.model.yml b/go/ql/lib/ext/empty.model.yml index 8d661a9f1db..1709a6098eb 100644 --- a/go/ql/lib/ext/empty.model.yml +++ b/go/ql/lib/ext/empty.model.yml @@ -9,6 +9,14 @@ extensions: pack: codeql/go-all extensible: sinkModel data: [] + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: [] + - addsTo: + pack: codeql/go-all + extensible: barrierGuardModel + data: [] - addsTo: pack: codeql/go-all extensible: summaryModel diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index b35a4ac281a..64cb6fbf98c 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 5.0.5-dev +version: 5.0.6-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/lib/semmle/go/controlflow/IR.qll b/go/ql/lib/semmle/go/controlflow/IR.qll index 2c8b673184e..144f0df6e7d 100644 --- a/go/ql/lib/semmle/go/controlflow/IR.qll +++ b/go/ql/lib/semmle/go/controlflow/IR.qll @@ -1588,4 +1588,9 @@ module IR { * in a field/method access, element access, or slice expression. */ EvalImplicitDerefInstruction implicitDerefInstruction(Expr e) { result = MkImplicitDeref(e) } + + /** Gets the base of `insn`, if `insn` is an implicit field read. */ + Instruction lookThroughImplicitFieldRead(Instruction insn) { + result = insn.(ImplicitFieldReadInstruction).getBaseInstruction() + } } diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 3228f424885..de1e3da6281 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -86,7 +86,7 @@ */ private import go -import internal.ExternalFlowExtensions as FlowExtensions +private import internal.ExternalFlowExtensions::Extensions as Extensions private import FlowSummary as FlowSummary private import internal.DataFlowPrivate private import internal.FlowSummaryImpl @@ -94,202 +94,33 @@ private import internal.FlowSummaryImpl::Public as Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External private import codeql.mad.ModelValidation as SharedModelVal +private import codeql.mad.static.ModelsAsData as SharedMaD + +private module MadInput implements SharedMaD::InputSig { + string namespaceSegmentSeparator() { result = "/" } + + bindingset[p] + string cleanNamespace(string p) { + exists(string noPrefix | + p = fixedVersionPrefix() + noPrefix + or + not p = fixedVersionPrefix() + any(string s) and + noPrefix = p + | + result = noPrefix.regexpReplaceAll(majorVersionSuffixRegex(), "") + ) + } +} + +private module MaD = SharedMaD::ModelsAsData; + +import MaD + +module FlowExtensions = Extensions; /** Gets the prefix for a group of packages. */ private string groupPrefix() { result = "group:" } -/** - * Gets a package represented by `packageOrGroup`. - * - * If `packageOrGroup` is of the form `group:` then `result` is a - * package in the group ``, as determined by `packageGrouping`. - * Otherwise, `result` is `packageOrGroup`. - */ -bindingset[packageOrGroup] -private string getPackage(string packageOrGroup) { - not exists(string group | packageOrGroup = groupPrefix() + group) and result = packageOrGroup - or - exists(string group | - FlowExtensions::packageGrouping(group, result) and - packageOrGroup = groupPrefix() + group - ) -} - -/** - * Holds if a source model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate sourceModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - exists(string packageOrGroup | - package = getPackage(packageOrGroup) and - FlowExtensions::sourceModel(packageOrGroup, type, subtypes, name, signature, ext, output, kind, - provenance, madId) - ) -} - -/** - * Holds if a sink model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate sinkModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - exists(string packageOrGroup | package = getPackage(packageOrGroup) | - FlowExtensions::sinkModel(packageOrGroup, type, subtypes, name, signature, ext, input, kind, - provenance, madId) - ) -} - -/** - * Holds if a summary model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate summaryModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - exists(string packageOrGroup | package = getPackage(packageOrGroup) | - FlowExtensions::summaryModel(packageOrGroup, type, subtypes, name, signature, ext, input, - output, kind, provenance, madId) - ) -} - -/** - * Holds if a neutral model exists for the given parameters. - * - * Note that `group:` references are expanded into one or more actual packages - * by this predicate. - */ -predicate neutralModel( - string package, string type, string name, string signature, string kind, string provenance -) { - exists(string packageOrGroup | package = getPackage(packageOrGroup) | - FlowExtensions::neutralModel(packageOrGroup, type, name, signature, kind, provenance) - ) -} - -/** - * Holds if the given extension tuple `madId` should pretty-print as `model`. - * - * This predicate should only be used in tests. - */ -predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { - exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance - | - FlowExtensions::sourceModel(package, type, subtypes, name, signature, ext, output, kind, - provenance, madId) and - model = - "Source: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + output + "; " + kind + "; " + provenance - ) - or - exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance - | - FlowExtensions::sinkModel(package, type, subtypes, name, signature, ext, input, kind, - provenance, madId) and - model = - "Sink: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + kind + "; " + provenance - ) - or - exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance - | - FlowExtensions::summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = - "Summary: " + package + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + - ext + "; " + input + "; " + output + "; " + kind + "; " + provenance - ) -} - -bindingset[p] -private string cleanPackage(string p) { - exists(string noPrefix | - p = fixedVersionPrefix() + noPrefix - or - not p = fixedVersionPrefix() + any(string s) and - noPrefix = p - | - result = noPrefix.regexpReplaceAll(majorVersionSuffixRegex(), "") - ) -} - -private predicate relevantPackage(string package) { - exists(string p | package = cleanPackage(p) | - sourceModel(p, _, _, _, _, _, _, _, _, _) or - sinkModel(p, _, _, _, _, _, _, _, _, _) or - summaryModel(p, _, _, _, _, _, _, _, _, _, _) - ) -} - -private predicate packageLink(string shortpkg, string longpkg) { - relevantPackage(shortpkg) and - relevantPackage(longpkg) and - longpkg.prefix(longpkg.indexOf("/")) = shortpkg -} - -private predicate canonicalPackage(string package) { - relevantPackage(package) and not packageLink(_, package) -} - -private predicate canonicalPkgLink(string package, string subpkg) { - canonicalPackage(package) and - (subpkg = package or packageLink(package, subpkg)) -} - -/** - * Holds if MaD framework coverage of `package` is `n` api endpoints of the - * kind `(kind, part)`, and `pkgs` is the number of subpackages of `package` - * which have MaD framework coverage (including `package` itself). - */ -predicate modelCoverage(string package, int pkgs, string kind, string part, int n) { - pkgs = strictcount(string subpkg | canonicalPkgLink(package, subpkg)) and - ( - part = "source" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance, string x | - canonicalPkgLink(package, subpkg) and - subpkg = cleanPackage(x) and - sourceModel(x, type, subtypes, name, signature, ext, output, kind, provenance, _) - ) - or - part = "sink" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance, string x | - canonicalPkgLink(package, subpkg) and - subpkg = cleanPackage(x) and - sinkModel(x, type, subtypes, name, signature, ext, input, kind, provenance, _) - ) - or - part = "summary" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance, string x | - canonicalPkgLink(package, subpkg) and - subpkg = cleanPackage(x) and - summaryModel(x, type, subtypes, name, signature, ext, input, output, kind, provenance, _) - ) - ) -} - /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll index a388e4bab04..4fb767e548c 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll @@ -838,7 +838,11 @@ module Public { exists(IR::MethodReadInstruction mri | ce.getTarget() instanceof Method and mri = IR::evalExprInstruction(ce.getCalleeExpr()) and - insn = mri.getReceiver() + // If a.x is reading a promoted field, and it's equivalent to a.b.c.x, + // then mri.getReceiver() will give us the implicit field read a.b.c + // and we want to have post-update nodes for a, the implicit field + // read a.b and the implicit field read a.b.c. + insn = IR::lookThroughImplicitFieldRead*(mri.getReceiver()) ) ) and mutableType(insn.getResultType()) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 94609d1c111..76b0ef363e3 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -89,7 +89,8 @@ predicate basicLocalFlowStep(Node nodeFrom, Node nodeTo) { nodeFrom = instructionNode(pred) or nodeFrom.(PostUpdateNode).getPreUpdateNode() = instructionNode(pred) ) and - nodeTo = instructionNode(succ) + nodeTo = instructionNode(succ) and + nodeTo != nodeFrom ) or // GlobalFunctionNode -> use diff --git a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll index b1e1c906028..2e962299f3e 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll @@ -2,6 +2,8 @@ * This module provides extensible predicates for defining MaD models. */ +private import codeql.mad.static.ModelsAsData as SharedMaD + /** * Holds if a source model exists for the given parameters. */ @@ -18,6 +20,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ @@ -37,3 +55,9 @@ extensible predicate neutralModel( * Holds if the package `package` is part of the group `group`. */ extensible predicate packageGrouping(string group, string package); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions + + predicate namespaceGrouping = packageGrouping/2; +} diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index f12c9e6eeb1..6c49cb75bd3 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -137,11 +137,9 @@ module SourceSinkInterpretationInput implements SourceOrSinkElement e, string output, string kind, Public::Provenance provenance, string model ) { exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string package, string type, boolean subtypes, string name, string signature, string ext | - sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } @@ -154,15 +152,26 @@ module SourceSinkInterpretationInput implements SourceOrSinkElement e, string input, string kind, Public::Provenance provenance, string model ) { exists( - string package, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string package, string type, boolean subtypes, string name, string signature, string ext | - sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) and - model = "MaD:" + madId.toString() and + sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + // Note that due to embedding, which is currently implemented via some // Methods having multiple qualified names, a given Method is liable to have // more than one SourceOrSinkElement, one for each of the names it claims. @@ -384,17 +393,13 @@ module SourceSinkInterpretationInput implements } private DataFlow::Node skipImplicitFieldReads(DataFlow::Node n) { - not exists(lookThroughImplicitFieldRead(n)) and result = n + not exists(IR::lookThroughImplicitFieldRead(n.asInstruction())) and result = n or - result = skipImplicitFieldReads(lookThroughImplicitFieldRead(n)) - } - - private DataFlow::Node lookThroughImplicitFieldRead(DataFlow::Node n) { - result.asInstruction() = - n.(DataFlow::InstructionNode) - .asInstruction() - .(IR::ImplicitFieldReadInstruction) - .getBaseInstruction() + exists(DataFlow::Node mid | + mid.asInstruction() = IR::lookThroughImplicitFieldRead(n.asInstruction()) + | + result = skipImplicitFieldReads(mid) + ) } /** Provides additional sink specification logic. */ @@ -491,12 +496,10 @@ module Private { string model ) { exists( - string namespace, string type, boolean subtypes, string name, string signature, string ext, - QlBuiltins::ExtensionId madId + string namespace, string type, boolean subtypes, string name, string signature, string ext | summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) and - model = "MaD:" + madId.toString() and + provenance, model) and c.asFunction() = interpretElement(namespace, type, subtypes, name, signature, ext).asEntity() ) diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index d73a2a4a480..126e2b8583c 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.2 + +No user-facing changes. + ## 1.5.1 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.5.2.md b/go/ql/src/change-notes/released/1.5.2.md new file mode 100644 index 00000000000..384c27833f1 --- /dev/null +++ b/go/ql/src/change-notes/released/1.5.2.md @@ -0,0 +1,3 @@ +## 1.5.2 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index c5775c46013..7eb901bae56 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.1 +lastReleaseVersion: 1.5.2 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index e376a7e6033..d0c0874c987 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.2-dev +version: 1.5.3-dev groups: - go - queries diff --git a/go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 9d975bcaeb8..00000000000 --- a/go/ql/test/example-tests/snippets/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| main.go:46:18:46:18 | n | Node steps to itself | -| main.go:47:3:47:3 | c | Node steps to itself | diff --git a/go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index df35beab366..00000000000 --- a/go/ql/test/experimental/CWE-400/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,4 +0,0 @@ -identityLocalStep -| DatabaseCallInLoop.go:9:3:9:4 | db | Node steps to itself | -| test.go:21:12:21:13 | db | Node steps to itself | -| test.go:25:15:25:16 | db | Node steps to itself | diff --git a/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected index 11c64c03775..455781c6b15 100644 --- a/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/experimental/CWE-522-DecompressionBombs/CONSISTENCY/DataFlowConsistency.expected @@ -34,25 +34,3 @@ reverseRead | test.go:92:19:92:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:93:5:93:11 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:94:9:94:15 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:114:37:114:38 | rc | Node steps to itself | -| test.go:198:27:198:29 | out | Node steps to itself | -| test.go:224:27:224:29 | out | Node steps to itself | -| test.go:249:27:249:29 | out | Node steps to itself | -| test.go:274:27:274:29 | out | Node steps to itself | -| test.go:299:27:299:29 | out | Node steps to itself | -| test.go:324:26:324:28 | out | Node steps to itself | -| test.go:349:26:349:28 | out | Node steps to itself | -| test.go:375:28:375:30 | out | Node steps to itself | -| test.go:403:28:403:30 | out | Node steps to itself | -| test.go:431:24:431:26 | out | Node steps to itself | -| test.go:463:26:463:28 | out | Node steps to itself | -| test.go:490:26:490:28 | out | Node steps to itself | -| test.go:517:27:517:29 | out | Node steps to itself | -| test.go:546:26:546:28 | out | Node steps to itself | -| test.go:571:26:571:28 | out | Node steps to itself | -| test.go:601:24:601:26 | out | Node steps to itself | -| test.go:614:15:614:21 | tarRead | Node steps to itself | -| test.go:622:3:622:7 | files | Node steps to itself | -| test.go:637:10:637:16 | tarRead | Node steps to itself | -| test.go:647:10:647:16 | tarRead | Node steps to itself | diff --git a/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected index 97c042bc984..736ff52258f 100644 --- a/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/experimental/CWE-942/CONSISTENCY/DataFlowConsistency.expected @@ -13,6 +13,3 @@ reverseRead | CorsMisconfiguration.go:170:14:170:16 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | CorsMisconfiguration.go:194:17:194:19 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | CorsMisconfiguration.go:206:14:206:16 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| CorsMisconfiguration.go:208:13:208:18 | origin | Node steps to itself | -| CorsMisconfiguration.go:235:6:235:8 | try | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected index 32dec7bf9ad..d0324c7c4eb 100644 --- a/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/Types/CONSISTENCY/DataFlowConsistency.expected @@ -1,11 +1,5 @@ reverseRead -| pkg1/embedding.go:56:29:56:39 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| pkg1/embedding.go:57:33:57:46 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| pkg1/embedding.go:58:14:58:22 | implicit read of field embedder | Origin of readStep is missing a PostUpdateNode. | -| pkg1/embedding.go:58:31:58:42 | implicit read of field embedder | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:43:6:43:6 | t | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:46:6:46:6 | t | Origin of readStep is missing a PostUpdateNode. | -| pkg1/tst.go:50:2:50:2 | t | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:53:6:53:7 | t2 | Origin of readStep is missing a PostUpdateNode. | | pkg1/tst.go:55:6:55:7 | t2 | Origin of readStep is missing a PostUpdateNode. | -| promoted.go:18:6:18:6 | t | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 44cf180f3bb..00000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowInheritance/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,37 +0,0 @@ -reverseRead -| test_methods.go:44:7:44:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:45:7:45:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:46:2:46:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:50:7:50:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:51:7:51:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:52:2:52:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:92:7:92:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:93:7:93:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:94:2:94:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:98:7:98:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:99:7:99:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:100:2:100:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:104:7:104:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:105:7:105:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:106:2:106:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:110:7:110:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:111:7:111:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:112:2:112:2 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:140:7:140:7 | implicit read of field SEmbedI1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:141:7:141:7 | implicit read of field SEmbedI1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:142:2:142:2 | implicit read of field SEmbedI1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:146:7:146:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:147:7:147:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:148:2:148:2 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:152:7:152:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:153:7:153:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:154:2:154:2 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:158:7:158:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:159:7:159:7 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:160:2:160:2 | implicit read of field SEmbedS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:164:7:164:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:165:7:165:7 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:166:2:166:2 | implicit read of field SEmbedPtrS1 | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:170:7:170:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:171:7:171:7 | t | Origin of readStep is missing a PostUpdateNode. | -| test_methods.go:172:2:172:2 | t | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected index 00f675090d5..44b43af6887 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/CONSISTENCY/DataFlowConsistency.expected @@ -2,14 +2,3 @@ reverseRead | test.go:90:10:90:15 | taint8 | Origin of readStep is missing a PostUpdateNode. | | test.go:104:12:104:18 | taint10 | Origin of readStep is missing a PostUpdateNode. | | test.go:150:10:150:14 | slice | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:92:3:92:3 | b | Node steps to itself | -| test.go:95:3:95:3 | b | Node steps to itself | -| test.go:106:3:106:3 | b | Node steps to itself | -| test.go:109:3:109:3 | b | Node steps to itself | -| test.go:119:3:119:3 | b | Node steps to itself | -| test.go:122:3:122:3 | b | Node steps to itself | -| test.go:125:3:125:3 | b | Node steps to itself | -| test.go:128:3:128:3 | b | Node steps to itself | -| test.go:138:3:138:3 | b | Node steps to itself | -| test.go:141:3:141:3 | b | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected index 00f675090d5..44b43af6887 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/CONSISTENCY/DataFlowConsistency.expected @@ -2,14 +2,3 @@ reverseRead | test.go:90:10:90:15 | taint8 | Origin of readStep is missing a PostUpdateNode. | | test.go:104:12:104:18 | taint10 | Origin of readStep is missing a PostUpdateNode. | | test.go:150:10:150:14 | slice | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:92:3:92:3 | b | Node steps to itself | -| test.go:95:3:95:3 | b | Node steps to itself | -| test.go:106:3:106:3 | b | Node steps to itself | -| test.go:109:3:109:3 | b | Node steps to itself | -| test.go:119:3:119:3 | b | Node steps to itself | -| test.go:122:3:122:3 | b | Node steps to itself | -| test.go:125:3:125:3 | b | Node steps to itself | -| test.go:128:3:128:3 | b | Node steps to itself | -| test.go:138:3:138:3 | b | Node steps to itself | -| test.go:141:3:141:3 | b | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index f0b57ce6ab4..00000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/PromotedMethods/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,7 +0,0 @@ -reverseRead -| methods.go:48:2:48:6 | base1 | Origin of readStep is missing a PostUpdateNode. | -| methods.go:58:2:58:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| methods.go:67:2:67:6 | base2 | Origin of readStep is missing a PostUpdateNode. | -| methods.go:68:2:68:6 | base2 | Origin of readStep is missing a PostUpdateNode. | -| methods.go:77:2:77:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| methods.go:78:2:78:7 | base2p | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 4952a904ea1..00000000000 --- a/go/ql/test/library-tests/semmle/go/dataflow/flowsources/local/database/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,28 +0,0 @@ -reverseRead -| test_couchbase_gocb_v2.go:151:2:151:10 | call to Next | Origin of readStep is missing a PostUpdateNode. | -| test_couchbase_gocb_v2.go:161:2:161:3 | r7 | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:66:6:66:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:69:9:69:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:80:18:80:19 | db | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:89:8:89:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:91:6:91:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:94:9:94:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:151:8:151:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:153:6:153:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:156:9:156:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:198:18:198:21 | stmt | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:207:8:207:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:209:6:209:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:212:9:212:12 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:254:18:254:19 | tx | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:263:8:263:11 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:265:6:265:9 | rows | Origin of readStep is missing a PostUpdateNode. | -| test_jmoiron_sqlx.go:268:9:268:12 | rows | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test_couchbase_gocb_v1.go:20:6:20:7 | r1 | Node steps to itself | -| test_couchbase_gocb_v1.go:40:6:40:7 | r2 | Node steps to itself | -| test_mongo_driver_mongo.go:80:24:80:26 | ctx | Node steps to itself | -| test_mongo_driver_mongo.go:103:24:103:26 | ctx | Node steps to itself | -| test_mongo_driver_mongo.go:116:24:116:26 | ctx | Node steps to itself | -| test_uptrace_bun.go:27:3:27:4 | db | Node steps to itself | -| test_uptrace_bun.go:27:14:27:16 | ctx | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected index 8dea84a9baa..42b10a988b5 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/CONSISTENCY/DataFlowConsistency.expected @@ -14,6 +14,3 @@ reverseRead | test.go:318:20:318:22 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:324:17:324:19 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | test.go:324:17:324:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| test.go:278:3:278:14 | genericFiles | Node steps to itself | -| test.go:278:21:278:25 | files | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index bfa166137d2..00000000000 --- a/go/ql/test/library-tests/semmle/go/frameworks/Macaron/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -reverseRead -| main.go:19:2:19:4 | ctx | Origin of readStep is missing a PostUpdateNode. | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected index da13da71339..0fd726cd886 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/CONSISTENCY/DataFlowConsistency.expected @@ -1,42 +1,29 @@ reverseRead -| EndToEnd.go:30:9:30:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:30:35:30:35 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:30:35:30:42 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:36:18:36:18 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:36:18:36:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:37:9:37:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:44:18:44:18 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:44:18:44:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:45:9:45:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:51:20:51:20 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:51:20:51:27 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:52:9:52:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:58:18:58:18 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:58:18:58:25 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:59:9:59:9 | c | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:64:9:64:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:64:26:64:26 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:64:26:64:33 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:69:9:69:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:69:22:69:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:69:22:69:29 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:74:9:74:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:74:22:74:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:74:22:74:29 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:79:9:79:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:79:35:79:35 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:79:35:79:42 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:84:9:84:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:84:22:84:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:84:22:84:29 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:89:9:89:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:89:21:89:21 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:89:21:89:28 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -| EndToEnd.go:94:9:94:9 | c | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:94:20:94:20 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | EndToEnd.go:94:20:94:27 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:26:7:26:7 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| Revel.go:26:7:26:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:27:7:27:7 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | Revel.go:27:7:27:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:30:2:30:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | @@ -55,7 +42,6 @@ reverseRead | Revel.go:60:7:60:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:63:2:63:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | Revel.go:70:22:70:22 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| Revel.go:71:2:71:2 | c | Origin of readStep is missing a PostUpdateNode. | | Revel.go:75:7:75:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:76:7:76:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:77:7:77:7 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | @@ -87,64 +73,34 @@ reverseRead | Revel.go:128:14:128:22 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | Revel.go:133:13:133:13 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:34:2:34:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:45:10:45:10 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:47:2:47:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:48:9:48:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:52:9:52:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:56:2:56:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:57:2:57:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:59:16:59:16 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:61:5:61:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:62:3:62:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:63:3:63:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:64:10:64:10 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:68:2:68:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:69:9:69:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:79:5:79:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:81:5:81:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:83:4:83:4 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:84:11:84:11 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:89:2:89:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:90:9:90:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/app.go:95:10:95:10 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/app.go:97:9:97:9 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:43:13:43:13 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:44:3:44:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:45:10:45:10 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:51:2:51:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:54:9:54:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:107:9:107:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:118:9:118:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:132:10:132:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:135:9:135:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:139:9:139:9 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:143:26:143:26 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:144:2:144:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:146:2:146:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:148:5:148:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:149:3:149:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:150:10:150:10 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:153:2:153:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:154:9:154:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:160:10:160:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:165:17:165:17 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:166:19:166:19 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:168:5:168:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:168:33:168:33 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:168:33:168:40 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:169:3:169:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:170:3:170:3 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:171:10:171:10 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:174:5:174:5 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:174:5:174:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:175:3:175:3 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:176:4:176:10 | booking | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:177:10:177:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:180:9:180:9 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/controllers/hotels.go:184:2:184:2 | implicit read of field Controller | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:185:9:185:9 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:191:10:191:10 | c | Origin of readStep is missing a PostUpdateNode. | -| examples/booking/app/controllers/hotels.go:195:9:195:9 | c | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/init.go:36:44:36:44 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/init.go:40:49:40:49 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/init.go:52:2:52:2 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | @@ -169,5 +125,3 @@ reverseRead | examples/booking/app/models/booking.go:82:14:82:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/models/booking.go:83:17:83:17 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | examples/booking/app/models/booking.go:84:18:84:18 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| examples/booking/app/controllers/app.go:95:10:95:10 | c | Node steps to itself | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected index 1a7df06cbc3..d4e53cf33a9 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/CONSISTENCY/DataFlowConsistency.expected @@ -95,9 +95,3 @@ reverseRead | rpc/notes/service.twirp.go:1278:11:1278:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | rpc/notes/service.twirp.go:1292:23:1292:26 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | server/main.go:33:19:33:19 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| rpc/notes/service.twirp.go:60:6:60:15 | clientOpts | Node steps to itself | -| rpc/notes/service.twirp.go:199:6:199:15 | clientOpts | Node steps to itself | -| rpc/notes/service.twirp.go:852:6:852:15 | serverOpts | Node steps to itself | -| rpc/notes/service.twirp.go:854:29:854:38 | serverOpts | Node steps to itself | -| rpc/notes/service.twirp.go:965:4:965:9 | copied | Node steps to itself | diff --git a/go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index a809e973823..00000000000 --- a/go/ql/test/query-tests/InconsistentCode/InconsistentLoopOrientation/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,6 +0,0 @@ -identityLocalStep -| InconsistentLoopOrientation.go:6:3:6:3 | a | Node steps to itself | -| InconsistentLoopOrientationGood.go:6:3:6:3 | a | Node steps to itself | -| main.go:9:26:9:26 | s | Node steps to itself | -| main.go:14:29:14:29 | l | Node steps to itself | -| main.go:20:3:20:3 | a | Node steps to itself | diff --git a/go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 1fcbd26f084..00000000000 --- a/go/ql/test/query-tests/InconsistentCode/LengthComparisonOffByOne/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| LengthComparisonOffByOne.go:10:19:10:28 | searchName | Node steps to itself | -| LengthComparisonOffByOneGood.go:9:14:9:23 | searchName | Node steps to itself | diff --git a/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected index e6771e5ce32..fbede1f2120 100644 --- a/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/RedundantCode/DeadStoreOfLocal/CONSISTENCY/DataFlowConsistency.expected @@ -1,4 +1,2 @@ reverseRead | testdata.go:206:7:206:7 | x | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| testdata.go:583:7:583:7 | x | Node steps to itself | diff --git a/go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 2627a5f7699..00000000000 --- a/go/ql/test/query-tests/RedundantCode/UnreachableStatement/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| main.go:35:6:35:9 | cond | Node steps to itself | -| main.go:44:6:44:9 | cond | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected index 145604efadd..69de1fc20fd 100644 --- a/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-022/CONSISTENCY/DataFlowConsistency.expected @@ -1,22 +1,3 @@ reverseRead | TaintedPath.go:15:18:15:18 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | TaintedPath.go:84:28:84:32 | files | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| UnsafeUnzipSymlink.go:26:18:26:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:30:29:30:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:42:22:42:27 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:58:18:58:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:62:3:62:7 | links | Node steps to itself | -| UnsafeUnzipSymlink.go:79:18:79:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:85:29:85:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:94:18:94:18 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:98:29:98:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:121:32:121:32 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:125:29:125:34 | target | Node steps to itself | -| UnsafeUnzipSymlink.go:146:32:146:32 | r | Node steps to itself | -| UnsafeUnzipSymlink.go:150:29:150:34 | target | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:30:18:30:18 | r | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:34:33:34:38 | target | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:46:26:46:31 | target | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:72:18:72:18 | r | Node steps to itself | -| UnsafeUnzipSymlinkGood.go:76:41:76:46 | target | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected index 0cc91974450..0b22e7c6251 100644 --- a/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-079/CONSISTENCY/DataFlowConsistency.expected @@ -19,8 +19,3 @@ reverseRead | tst.go:48:14:48:14 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | tst.go:66:15:66:15 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | websocketXss.go:26:9:26:9 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| StoredXss.go:13:18:13:18 | w | Node steps to itself | -| StoredXssGood.go:17:3:17:10 | template | Node steps to itself | -| stored.go:30:19:30:19 | w | Node steps to itself | -| stored.go:51:20:51:20 | w | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected index 44f59b2c63a..9161b6f3eb9 100644 --- a/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-312/CONSISTENCY/DataFlowConsistency.expected @@ -29,6 +29,3 @@ reverseRead | server1.go:14:11:14:14 | vals | Origin of readStep is missing a PostUpdateNode. | | server1.go:17:41:17:41 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | server1.go:21:46:21:46 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| klog.go:24:20:24:23 | name | Node steps to itself | -| server1.go:29:3:29:3 | s | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected index ed110299878..95bea8fef59 100644 --- a/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-327/CONSISTENCY/DataFlowConsistency.expected @@ -2,5 +2,3 @@ reverseRead | UnsafeTLS.go:329:32:329:37 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UnsafeTLS.go:336:33:336:38 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UnsafeTLS.go:353:40:353:45 | suites | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| UnsafeTLS.go:353:40:353:45 | suites | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 85404bf715a..00000000000 --- a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -identityLocalStep -| InsecureRandomness.go:12:3:12:3 | s | Node steps to itself | -| InsecureRandomnessGood.go:15:3:15:3 | s | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected index fdbbb022898..215578883b2 100644 --- a/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected +++ b/go/ql/test/query-tests/Security/CWE-770/CONSISTENCY/DataFlowConsistency.expected @@ -4,14 +4,3 @@ reverseRead | UncontrolledAllocationSizeGood.go:32:12:32:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UncontrolledAllocationSizeGood.go:52:12:52:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | | UncontrolledAllocationSizeGood.go:73:12:73:12 | implicit dereference | Origin of readStep is missing a PostUpdateNode. | -identityLocalStep -| UncontrolledAllocationSizeBad.go:21:18:21:21 | sink | Node steps to itself | -| UncontrolledAllocationSizeBad.go:22:3:22:8 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:23:18:23:21 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:24:3:24:8 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:42:19:42:22 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:43:4:43:9 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:63:19:63:22 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:64:4:64:9 | result | Node steps to itself | -| UncontrolledAllocationSizeGood.go:88:18:88:21 | sink | Node steps to itself | -| UncontrolledAllocationSizeGood.go:89:3:89:8 | result | Node steps to itself | diff --git a/go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected b/go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected deleted file mode 100644 index 3178a874bb3..00000000000 --- a/go/ql/test/query-tests/Security/CWE-798/CONSISTENCY/DataFlowConsistency.expected +++ /dev/null @@ -1,9 +0,0 @@ -identityLocalStep -| HardcodedKeysGood.go:20:3:20:5 | ret | Node steps to itself | -| sanitizer.go:26:3:26:7 | bytes | Node steps to itself | -| sanitizer.go:39:3:39:5 | ret | Node steps to itself | -| sanitizer.go:49:3:49:7 | bytes | Node steps to itself | -| sanitizer.go:70:12:70:17 | length | Node steps to itself | -| sanitizer.go:71:27:71:33 | sources | Node steps to itself | -| sanitizer.go:71:35:71:35 | r | Node steps to itself | -| sanitizer.go:71:42:71:53 | sourceLength | Node steps to itself | diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index b2f589ac1a4..ee076ba77a7 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 7.8.2 + +No user-facing changes. + ## 7.8.1 No user-facing changes. diff --git a/java/ql/lib/change-notes/released/7.8.2.md b/java/ql/lib/change-notes/released/7.8.2.md new file mode 100644 index 00000000000..8b7244cb0b6 --- /dev/null +++ b/java/ql/lib/change-notes/released/7.8.2.md @@ -0,0 +1,3 @@ +## 7.8.2 + +No user-facing changes. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 3c5be70cd79..40a3d24f296 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.8.1 +lastReleaseVersion: 7.8.2 diff --git a/java/ql/lib/ext/empty.model.yml b/java/ql/lib/ext/empty.model.yml index 43028e7cc14..a0ea3cf753b 100644 --- a/java/ql/lib/ext/empty.model.yml +++ b/java/ql/lib/ext/empty.model.yml @@ -13,6 +13,14 @@ extensions: pack: codeql/java-all extensible: summaryModel data: [] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: [] + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: [] - addsTo: pack: codeql/java-all extensible: neutralModel diff --git a/java/ql/lib/ext/hudson.model.yml b/java/ql/lib/ext/hudson.model.yml index eda30b6a0ff..0dfff091fcd 100644 --- a/java/ql/lib/ext/hudson.model.yml +++ b/java/ql/lib/ext/hudson.model.yml @@ -50,6 +50,12 @@ extensions: - ["hudson", "FilePath", False, "readToString", "", "", "ReturnValue", "file", "manual"] - ["hudson", "Plugin", True, "configure", "", "", "Parameter", "remote", "manual"] - ["hudson", "Plugin", True, "newInstance", "", "", "Parameter", "remote", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["hudson", "Util", True, "escape", "(String)", "", "ReturnValue", "html-injection", "manual"] + # Not including xmlEscape because it only accounts for >, <, and &. It does not account for ", or ', which makes it an incomplete XSS sanitizer. - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/ext/java.io.model.yml b/java/ql/lib/ext/java.io.model.yml index 3582e2b78ac..07e39c9e12f 100644 --- a/java/ql/lib/ext/java.io.model.yml +++ b/java/ql/lib/ext/java.io.model.yml @@ -162,3 +162,8 @@ extensions: extensible: sourceModel data: - ["java.io", "FileInputStream", True, "FileInputStream", "", "", "Argument[this]", "file", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["java.io", "File", True, "getName", "()", "", "ReturnValue", "path-injection", "manual"] diff --git a/java/ql/lib/ext/java.net.model.yml b/java/ql/lib/ext/java.net.model.yml index 084fce7bbc4..e69db468a4a 100644 --- a/java/ql/lib/ext/java.net.model.yml +++ b/java/ql/lib/ext/java.net.model.yml @@ -34,6 +34,11 @@ extensions: - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[],ClassLoader)", "", "Argument[0]", "request-forgery", "manual"] - ["java.net", "URLClassLoader", False, "URLClassLoader", "(URL[])", "", "Argument[0]", "request-forgery", "manual"] - ["java.net", "PasswordAuthentication", False, "PasswordAuthentication", "(String,char[])", "", "Argument[0]", "credentials-username", "hq-generated"] + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: + - ["java.net", "URI", True, "isAbsolute", "()", "", "Argument[this]", "false", "request-forgery", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/ext/java.util.regex.model.yml b/java/ql/lib/ext/java.util.regex.model.yml index 4f0776e59bd..20269a271b5 100644 --- a/java/ql/lib/ext/java.util.regex.model.yml +++ b/java/ql/lib/ext/java.util.regex.model.yml @@ -12,6 +12,11 @@ extensions: - ["java.util.regex", "Pattern", False, "split", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] - ["java.util.regex", "Pattern", False, "split", "(CharSequence,int)", "", "Argument[this]", "regex-use[0]", "manual"] - ["java.util.regex", "Pattern", False, "splitAsStream", "(CharSequence)", "", "Argument[this]", "regex-use[0]", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["java.util.regex", "Pattern", False, "quote", "(String)", "", "ReturnValue", "regex-use", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel diff --git a/java/ql/lib/ext/org.owasp.esapi.model.yml b/java/ql/lib/ext/org.owasp.esapi.model.yml index 30578debe58..70890d7e03b 100644 --- a/java/ql/lib/ext/org.owasp.esapi.model.yml +++ b/java/ql/lib/ext/org.owasp.esapi.model.yml @@ -1,6 +1,42 @@ extensions: + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: + - ["org.owasp.esapi", "Validator", true, "isValidCreditCard", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidDate", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidDirectoryPath", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidDouble", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidFileContent", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidFileName", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidInput", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidInteger", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidListItem", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidNumber", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidPrintable", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidRedirectLocation", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidSafeHTML", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "isValidURI", "", "", "Argument[1]", "true", "trust-boundary-violation", "manual"] + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["org.owasp.esapi", "Validator", true, "getValidCreditCard", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidDate", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidDirectoryPath", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidDouble", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidFileContent", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidFileName", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidInput", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidInteger", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidListItem", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidNumber", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidPrintable", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidRedirectLocation", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidSafeHTML", "", "", "ReturnValue", "trust-boundary-violation", "manual"] + - ["org.owasp.esapi", "Validator", true, "getValidURI", "", "", "ReturnValue", "trust-boundary-violation", "manual"] - addsTo: pack: codeql/java-all extensible: summaryModel data: - - ["org.owasp.esapi", "Encoder", true, "encodeForHTML", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] \ No newline at end of file + - ["org.owasp.esapi", "Encoder", true, "encodeForHTML", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index b651ef50689..f0f57e7150d 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.2-dev +version: 7.8.3-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index d1849df0f3e..4a0fc3f8546 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -91,14 +91,60 @@ module; import java private import semmle.code.java.dataflow.DataFlow::DataFlow +private import semmle.code.java.controlflow.Guards private import FlowSummary as FlowSummary private import internal.DataFlowPrivate private import internal.FlowSummaryImpl private import internal.FlowSummaryImpl::Public private import internal.FlowSummaryImpl::Private private import internal.FlowSummaryImpl::Private::External -private import internal.ExternalFlowExtensions as Extensions +private import internal.ExternalFlowExtensions::Extensions as Extensions private import codeql.mad.ModelValidation as SharedModelVal +private import codeql.mad.static.ModelsAsData as SharedMaD + +private module MadInput implements SharedMaD::InputSig { + /** Holds if a source model exists for the given parameters. */ + predicate additionalSourceModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + any(ActiveExperimentalModelsInternal q) + .sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, + madId) and + model = "MaD:" + madId.toString() + ) + } + + /** Holds if a sink model exists for the given parameters. */ + predicate additionalSinkModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + any(ActiveExperimentalModelsInternal q) + .sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + } + + /** Holds if a summary model exists for the given parameters. */ + predicate additionalSummaryModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + exists(QlBuiltins::ExtensionId madId | + any(ActiveExperimentalModelsInternal q) + .summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + } +} + +private module MaD = SharedMaD::ModelsAsData; + +import MaD /** * A class for activating additional model rows. @@ -146,60 +192,18 @@ abstract private class ActiveExperimentalModelsInternal extends string { deprecated class ActiveExperimentalModels = ActiveExperimentalModelsInternal; -/** Holds if a source model exists for the given parameters. */ -predicate sourceModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - ( - Extensions::sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, - madId) - or - any(ActiveExperimentalModelsInternal q) - .sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId) - ) -} - -/** Holds if a sink model exists for the given parameters. */ -predicate sinkModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - ( - Extensions::sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, - madId) - or - any(ActiveExperimentalModelsInternal q) - .sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) - ) -} - -/** Holds if a summary model exists for the given parameters. */ -predicate summaryModel( - string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId -) { - ( - Extensions::summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) - or - any(ActiveExperimentalModelsInternal q) - .summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, - provenance, madId) - ) -} - /** * Holds if the given extension tuple `madId` should pretty-print as `model`. * * This predicate should only be used in tests. */ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { + MaD::interpretModelForTest(madId, model) + or exists( string package, string type, boolean subtypes, string name, string signature, string ext, string output, string kind, string provenance | - sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, madId) or Extensions::experimentalSourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance, _, madId) | @@ -212,7 +216,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { string package, string type, boolean subtypes, string name, string signature, string ext, string input, string kind, string provenance | - sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, madId) or Extensions::experimentalSinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance, _, madId) | @@ -225,8 +228,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { string package, string type, boolean subtypes, string name, string signature, string ext, string input, string output, string kind, string provenance | - summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance, - madId) or Extensions::experimentalSummaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance, _, madId) | @@ -236,65 +237,6 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { ) } -/** Holds if a neutral model exists for the given parameters. */ -predicate neutralModel = Extensions::neutralModel/6; - -private predicate relevantPackage(string package) { - sourceModel(package, _, _, _, _, _, _, _, _, _) or - sinkModel(package, _, _, _, _, _, _, _, _, _) or - summaryModel(package, _, _, _, _, _, _, _, _, _, _) -} - -private predicate packageLink(string shortpkg, string longpkg) { - relevantPackage(shortpkg) and - relevantPackage(longpkg) and - longpkg.prefix(longpkg.indexOf(".")) = shortpkg -} - -private predicate canonicalPackage(string package) { - relevantPackage(package) and not packageLink(_, package) -} - -private predicate canonicalPkgLink(string package, string subpkg) { - canonicalPackage(package) and - (subpkg = package or packageLink(package, subpkg)) -} - -/** - * Holds if MaD framework coverage of `package` is `n` api endpoints of the - * kind `(kind, part)`, and `pkgs` is the number of subpackages of `package` - * which have MaD framework coverage (including `package` itself). - */ -predicate modelCoverage(string package, int pkgs, string kind, string part, int n) { - pkgs = strictcount(string subpkg | canonicalPkgLink(package, subpkg)) and - ( - part = "source" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string output, string provenance | - canonicalPkgLink(package, subpkg) and - sourceModel(subpkg, type, subtypes, name, signature, ext, output, kind, provenance, _) - ) - or - part = "sink" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string provenance | - canonicalPkgLink(package, subpkg) and - sinkModel(subpkg, type, subtypes, name, signature, ext, input, kind, provenance, _) - ) - or - part = "summary" and - n = - strictcount(string subpkg, string type, boolean subtypes, string name, string signature, - string ext, string input, string output, string provenance | - canonicalPkgLink(package, subpkg) and - summaryModel(subpkg, type, subtypes, name, signature, ext, input, output, kind, provenance, - _) - ) - ) -} - /** Provides a query predicate to check the MaD models for validation errors. */ module ModelValidation { private import codeql.dataflow.internal.AccessPathSyntax as AccessPathSyntax @@ -303,7 +245,9 @@ module ModelValidation { summaryModel(_, _, _, _, _, _, path, _, _, _, _) or summaryModel(_, _, _, _, _, _, _, path, _, _, _) or sinkModel(_, _, _, _, _, _, path, _, _, _) or - sourceModel(_, _, _, _, _, _, path, _, _, _) + sourceModel(_, _, _, _, _, _, path, _, _, _) or + barrierModel(_, _, _, _, _, _, path, _, _, _) or + barrierGuardModel(_, _, _, _, _, _, path, _, _, _, _) } private module MkAccessPath = AccessPathSyntax::AccessPath; @@ -316,6 +260,8 @@ module ModelValidation { exists(string pred, AccessPath input, AccessPathToken part | sinkModel(_, _, _, _, _, _, input, _, _, _) and pred = "sink" or + barrierGuardModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "barrier guard" + or summaryModel(_, _, _, _, _, _, input, _, _, _, _) and pred = "summary" | ( @@ -338,6 +284,8 @@ module ModelValidation { exists(string pred, AccessPath output, AccessPathToken part | sourceModel(_, _, _, _, _, _, output, _, _, _) and pred = "source" or + barrierModel(_, _, _, _, _, _, output, _, _, _) and pred = "barrier" + or summaryModel(_, _, _, _, _, _, _, output, _, _, _) and pred = "summary" | ( @@ -355,7 +303,13 @@ module ModelValidation { private module KindValConfig implements SharedModelVal::KindValidationConfigSig { predicate summaryKind(string kind) { summaryModel(_, _, _, _, _, _, _, _, kind, _, _) } - predicate sinkKind(string kind) { sinkModel(_, _, _, _, _, _, _, kind, _, _) } + predicate sinkKind(string kind) { + sinkModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierModel(_, _, _, _, _, _, _, kind, _, _) + or + barrierGuardModel(_, _, _, _, _, _, _, _, kind, _, _) + } predicate sourceKind(string kind) { sourceModel(_, _, _, _, _, _, _, kind, _, _) } @@ -373,6 +327,11 @@ module ModelValidation { or sinkModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "sink" or + barrierModel(package, type, _, name, signature, ext, _, _, provenance, _) and pred = "barrier" + or + barrierGuardModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and + pred = "barrier guard" + or summaryModel(package, type, _, name, signature, ext, _, _, _, provenance, _) and pred = "summary" or @@ -398,6 +357,14 @@ module ModelValidation { invalidProvenance(provenance) and result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) + or + exists(string acceptingvalue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and + invalidAcceptingValue(acceptingvalue) and + result = + "Unrecognized accepting value description \"" + acceptingvalue + + "\" in barrier guard model." + ) } /** Holds if some row in a MaD flow model appears to contain typos. */ @@ -418,6 +385,10 @@ private predicate elementSpec( or sinkModel(package, type, subtypes, name, signature, ext, _, _, _, _) or + barrierModel(package, type, subtypes, name, signature, ext, _, _, _, _) + or + barrierGuardModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) + or summaryModel(package, type, subtypes, name, signature, ext, _, _, _, _, _) or neutralModel(package, type, name, signature, _, _) and ext = "" and subtypes = true @@ -578,6 +549,53 @@ 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(AcceptingValue av) { + av.isTrue() and result.asBooleanValue() = true + or + av.isFalse() and result.asBooleanValue() = false + or + 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(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { + exists( + SourceSinkInterpretationInput::InterpretNode n, 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) + | + g.(Call).getAnArgument() = e or g.(MethodCall).getQualifier() = e + ) + } + + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + cached + predicate barrierNode(Node node, string kind, string model) { + exists(SourceSinkInterpretationInput::InterpretNode n | + isBarrierNode(n, kind, model) and n.asNode() = node + ) + or + ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, + model)) = node + } } import Cached @@ -594,6 +612,12 @@ predicate sourceNode(Node node, string kind) { sourceNode(node, kind, _) } */ predicate sinkNode(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(Node node, string kind) { barrierNode(node, kind, _) } + // adapter class for converting Mad summaries to `SummarizedCallable`s private class SummarizedCallableAdapter extends SummarizedCallable { SummarizedCallableAdapter() { summaryElement(this, _, _, _, _, _, _) } 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 dc58529ed26..a27f14cede0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll @@ -60,7 +60,7 @@ private module DispatchImpl { 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 + // 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() 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 00e7d15ee8b..e2e80c293ef 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -374,6 +374,29 @@ class ContentSet instanceof Content { } } +/** + * Holds if the guard `g` validates the expression `e` upon evaluating to `gv`. + * + * 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 valueGuardChecksSig(Guard g, Expr e, GuardValue gv); + +/** + * 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 BarrierGuardValue { + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode() { + SsaFlow::asNode(result) = + SsaImpl::DataFlowIntegration::BarrierGuard::getABarrierNode() + } +} + /** * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. * @@ -390,9 +413,38 @@ signature predicate guardChecksSig(Guard g, Expr e, boolean branch); * in data flow and taint tracking. */ module BarrierGuard { + private predicate guardChecks0(Guard g, Expr e, GuardValue gv) { + guardChecks(g, e, gv.asBooleanValue()) + } + /** Gets a node that is safely guarded by the given guard check. */ - Node getABarrierNode() { + Node getABarrierNode() { result = BarrierGuardValue::getABarrierNode() } +} + +bindingset[this] +private signature class ParamSig; + +private module WithParam { + /** + * Holds if the guard `g` validates the expression `e` upon evaluating to `gv`. + * + * 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(Guard g, Expr e, GuardValue gv, P param); +} + +/** + * 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 ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode(P param) { SsaFlow::asNode(result) = - SsaImpl::DataFlowIntegration::BarrierGuard::getABarrierNode() + SsaImpl::DataFlowIntegration::ParameterizedBarrierGuard::getABarrierNode(param) } } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index 32b5d289e28..be474ad4535 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -4,6 +4,8 @@ overlay[local?] module; +private import codeql.mad.static.ModelsAsData as SharedMaD + /** * Holds if a source model exists for the given parameters. */ @@ -20,6 +22,22 @@ extensible predicate sinkModel( string input, string kind, string provenance, QlBuiltins::ExtensionId madId ); +/** + * Holds if a barrier model exists for the given parameters. + */ +extensible predicate barrierModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId +); + +/** + * Holds if a barrier guard model exists for the given parameters. + */ +extensible predicate barrierGuardModel( + string package, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId +); + /** * Holds if a summary model exists for the given parameters. */ @@ -77,3 +95,9 @@ extensible predicate experimentalSummaryModel( string input, string output, string kind, string provenance, string filter, QlBuiltins::ExtensionId madId ); + +module Extensions implements SharedMaD::ExtensionsSig { + import ExternalFlowExtensions + + predicate namespaceGrouping(string group, string namespace) { none() } +} 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 8dc28ea2f60..b9d8f58cecb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -158,7 +158,9 @@ private predicate relatedArgSpec(Callable c, string spec) { summaryModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _, _) or summaryModel(namespace, type, subtypes, name, signature, ext, _, spec, _, _, _) or sourceModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or - sinkModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) + sinkModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or + barrierModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _) or + barrierGuardModel(namespace, type, subtypes, name, signature, ext, spec, _, _, _, _) | c = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) @@ -226,11 +228,10 @@ module SourceSinkInterpretationInput implements ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseSource, string originalOutput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseSource, string originalOutput | sourceModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, provenance, - madId) and - model = "MaD:" + madId.toString() and + model) and baseSource = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseSource and output = originalOutput @@ -245,11 +246,10 @@ module SourceSinkInterpretationInput implements ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - SourceOrSinkElement baseSink, string originalInput, QlBuiltins::ExtensionId madId + SourceOrSinkElement baseSink, string originalInput | sinkModel(namespace, type, subtypes, name, signature, ext, originalInput, kind, provenance, - madId) and - model = "MaD:" + madId.toString() and + model) and baseSink = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseSink and originalInput = input @@ -259,6 +259,43 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element e, string output, string kind, Public::Provenance provenance, string model + ) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + SourceOrSinkElement baseBarrier, string originalOutput + | + barrierModel(namespace, type, subtypes, name, signature, ext, originalOutput, kind, + provenance, model) and + baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and + ( + e = baseBarrier and output = originalOutput + or + correspondingKotlinParameterDefaultsArgSpec(baseBarrier, e, originalOutput, output) + ) + ) + } + + predicate barrierGuardElement( + Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + SourceOrSinkElement baseBarrier, string originalInput + | + barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalInput, + acceptingvalue, kind, provenance, model) and + baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and + ( + e = baseBarrier and input = originalInput + or + correspondingKotlinParameterDefaultsArgSpec(baseBarrier, e, originalInput, input) + ) + ) + } + class SourceOrSinkElement = Element; private newtype TInterpretNode = @@ -343,12 +380,10 @@ module Private { ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string originalInput, string originalOutput, Callable baseCallable, - QlBuiltins::ExtensionId madId + string originalInput, string originalOutput, Callable baseCallable | summaryModel(namespace, type, subtypes, name, signature, ext, originalInput, originalOutput, - kind, provenance, madId) and - model = "MaD:" + madId.toString() and + kind, provenance, model) and baseCallable = interpretElement(namespace, type, subtypes, name, signature, ext, isExact) and ( c.asCallable() = baseCallable and input = originalInput and output = originalOutput 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 624f82fd341..bafb16d6ab5 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -564,12 +564,14 @@ private module Cached { DataFlowIntegrationImpl::localMustFlowStep(v, nodeFrom, nodeTo) } - signature predicate guardChecksSig(Guards::Guard g, Expr e, boolean branch); + signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::GuardValue gv); cached // nothing is actually cached module BarrierGuard { - private predicate guardChecksAdjTypes(Guards::Guards_v3::Guard g, Expr e, boolean branch) { - guardChecks(g, e, branch) + private predicate guardChecksAdjTypes( + Guards::Guards_v3::Guard g, Expr e, Guards::GuardValue gv + ) { + guardChecks(g, e, gv) } private predicate guardChecksWithWrappers( @@ -586,6 +588,36 @@ private module Cached { predicate getABarrierNode = getABarrierNodeImpl/0; } + + bindingset[this] + private signature class ParamSig; + + private module WithParam { + signature predicate guardChecksSig(Guards::Guard g, Expr e, Guards::GuardValue gv, P param); + } + + cached // nothing is actually cached + module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { + private predicate guardChecksAdjTypes( + Guards::Guards_v3::Guard g, Expr e, Guards::GuardValue gv, P param + ) { + guardChecks(g, e, gv, param) + } + + private predicate guardChecksWithWrappers( + DataFlowIntegrationInput::Guard g, Definition def, Guards::GuardValue val, P param + ) { + Guards::Guards_v3::ParameterizedValidationWrapper::guardChecksDef(g, + def, val, param) + } + + private Node getABarrierNodeImpl(P param) { + result = + DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(param) + } + + predicate getABarrierNode = getABarrierNodeImpl/1; + } } cached diff --git a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll index 44752f94576..86b65928917 100644 --- a/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll +++ b/java/ql/lib/semmle/code/java/frameworks/hudson/Hudson.qll @@ -14,14 +14,3 @@ class HudsonWebMethod extends Method { this.getDeclaringType().getASourceSupertype*().hasQualifiedName("hudson.model", "Descriptor") } } - -private class HudsonUtilXssSanitizer extends XssSanitizer { - HudsonUtilXssSanitizer() { - this.asExpr() - .(MethodCall) - .getMethod() - // Not including xmlEscape because it only accounts for >, <, and &. - // It does not account for ", or ', which makes it an incomplete XSS sanitizer. - .hasQualifiedName("hudson", "Util", "escape") - } -} diff --git a/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll b/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll deleted file mode 100644 index fe95cd0d39d..00000000000 --- a/java/ql/lib/semmle/code/java/frameworks/owasp/Esapi.qll +++ /dev/null @@ -1,42 +0,0 @@ -/** Classes and predicates for reasoning about the `owasp.easpi` package. */ -overlay[local?] -module; - -import java - -/** - * The `org.owasp.esapi.Validator` interface. - */ -class EsapiValidator extends RefType { - EsapiValidator() { this.hasQualifiedName("org.owasp.esapi", "Validator") } -} - -/** - * The methods of `org.owasp.esapi.Validator` which validate data. - */ -class EsapiIsValidMethod extends Method { - EsapiIsValidMethod() { - this.getDeclaringType() instanceof EsapiValidator and - this.hasName([ - "isValidCreditCard", "isValidDate", "isValidDirectoryPath", "isValidDouble", - "isValidFileContent", "isValidFileName", "isValidInput", "isValidInteger", - "isValidListItem", "isValidNumber", "isValidPrintable", "isValidRedirectLocation", - "isValidSafeHTML", "isValidURI" - ]) - } -} - -/** - * The methods of `org.owasp.esapi.Validator` which return validated data. - */ -class EsapiGetValidMethod extends Method { - EsapiGetValidMethod() { - this.getDeclaringType() instanceof EsapiValidator and - this.hasName([ - "getValidCreditCard", "getValidDate", "getValidDirectoryPath", "getValidDouble", - "getValidFileContent", "getValidFileName", "getValidInput", "getValidInteger", - "getValidListItem", "getValidNumber", "getValidPrintable", "getValidRedirectLocation", - "getValidSafeHTML", "getValidURI" - ]) - } -} diff --git a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll index da6f242bde5..2018004a3fb 100644 --- a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll @@ -4,6 +4,7 @@ module; import java private import semmle.code.java.controlflow.Guards +private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSources private import semmle.code.java.dataflow.SSA private import semmle.code.java.frameworks.kotlin.IO @@ -288,19 +289,8 @@ private Method getSourceMethod(Method m) { result = m } -/** - * A sanitizer that protects against path injection vulnerabilities - * by extracting the final component of the user provided path. - * - * TODO: convert this class to models-as-data if sanitizer support is added - */ -private class FileGetNameSanitizer extends PathInjectionSanitizer { - FileGetNameSanitizer() { - exists(MethodCall mc | - mc.getMethod().hasQualifiedName("java.io", "File", "getName") and - this.asExpr() = mc - ) - } +private class DefaultPathInjectionSanitizer extends PathInjectionSanitizer { + DefaultPathInjectionSanitizer() { barrierNode(this, "path-injection") } } /** Holds if `g` is a guard that checks for `..` components. */ diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index 9e3dec00357..690e4f9315b 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -118,25 +118,8 @@ private class ContainsUrlSanitizer extends RequestForgerySanitizer { } } -/** - * A check that the URL is relative, and therefore safe for URL redirects. - */ -private predicate isRelativeUrlSanitizer(Guard guard, Expr e, boolean branch) { - guard = - any(MethodCall call | - call.getMethod().hasQualifiedName("java.net", "URI", "isAbsolute") and - e = call.getQualifier() and - branch = false - ) -} - -/** - * A check that the URL is relative, and therefore safe for URL redirects. - */ -private class RelativeUrlSanitizer extends RequestForgerySanitizer { - RelativeUrlSanitizer() { - this = DataFlow::BarrierGuard::getABarrierNode() - } +private class DefaultRequestForgerySanitizer extends RequestForgerySanitizer { + DefaultRequestForgerySanitizer() { barrierNode(this, "request-forgery") } } /** diff --git a/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll b/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll index b2f49834b5a..477aeb48b64 100644 --- a/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/TrustBoundaryViolationQuery.qll @@ -5,7 +5,6 @@ private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.controlflow.Guards private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.FlowSources -private import semmle.code.java.frameworks.owasp.Esapi private import semmle.code.java.security.Sanitizers /** @@ -28,25 +27,8 @@ class TrustBoundaryViolationSink extends DataFlow::Node { */ abstract class TrustBoundaryValidationSanitizer extends DataFlow::Node { } -/** - * A node validated by an OWASP ESAPI validation method. - */ -private class EsapiValidatedInputSanitizer extends TrustBoundaryValidationSanitizer { - EsapiValidatedInputSanitizer() { - this = DataFlow::BarrierGuard::getABarrierNode() or - this.asExpr().(MethodCall).getMethod() instanceof EsapiGetValidMethod - } -} - -/** - * Holds if `g` is a guard that checks that `e` is valid data according to an OWASP ESAPI validation method. - */ -private predicate esapiIsValidData(Guard g, Expr e, boolean branch) { - branch = true and - exists(MethodCall ma | ma.getMethod() instanceof EsapiIsValidMethod | - g = ma and - e = ma.getArgument(1) - ) +private class DefaultTrustBoundaryValidationSanitizer extends TrustBoundaryValidationSanitizer { + DefaultTrustBoundaryValidationSanitizer() { barrierNode(this, "trust-boundary-violation") } } /** diff --git a/java/ql/lib/semmle/code/java/security/XSS.qll b/java/ql/lib/semmle/code/java/security/XSS.qll index 990371cc8cf..c131f868f36 100644 --- a/java/ql/lib/semmle/code/java/security/XSS.qll +++ b/java/ql/lib/semmle/code/java/security/XSS.qll @@ -54,12 +54,24 @@ private class DefaultXssSink extends XssSink { } } -/** A default sanitizer that considers numeric and boolean typed data safe for writing to output. */ private class DefaultXssSanitizer extends XssSanitizer { - DefaultXssSanitizer() { + DefaultXssSanitizer() { barrierNode(this, ["html-injection", "js-injection"]) } +} + +/** A sanitizer that considers numeric and boolean typed data safe for writing to output. */ +private class PrimitiveSanitizer extends XssSanitizer { + PrimitiveSanitizer() { this.getType() instanceof NumericType or - this.getType() instanceof BooleanType or - // Match `org.springframework.web.util.HtmlUtils.htmlEscape` and possibly other methods like it. + this.getType() instanceof BooleanType + } +} + +/** + * A call to `org.springframework.web.util.HtmlUtils.htmlEscape`, or possibly + * other methods like it, considered as a sanitizer for XSS. + */ +private class HtmlEscapeXssSanitizer extends XssSanitizer { + HtmlEscapeXssSanitizer() { this.asExpr().(MethodCall).getMethod().getName().regexpMatch("(?i)html_?escape.*") } } 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 eb27ec87375..d91b411b797 100644 --- a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll +++ b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll @@ -21,17 +21,8 @@ private class DefaultRegexInjectionSink extends RegexInjectionSink { } } -/** - * A call to the `Pattern.quote` method, which gives metacharacters or escape sequences - * no special meaning. - */ -private class PatternQuoteCall extends RegexInjectionSanitizer { - PatternQuoteCall() { - exists(MethodCall ma, Method m | m = ma.getMethod() | - ma.getArgument(0) = this.asExpr() and - m instanceof PatternQuoteMethod - ) - } +private class DefaultRegexInjectionSanitizer extends RegexInjectionSanitizer { + DefaultRegexInjectionSanitizer() { barrierNode(this, "regex-use") } } /** diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index f78a970245f..a30e72bfaef 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.10.3 + +### Minor Analysis Improvements + +* Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility. + ## 1.10.2 No user-facing changes. diff --git a/java/ql/src/change-notes/2025-12-08-maven-no-source-target-flags.md b/java/ql/src/change-notes/released/1.10.3.md similarity index 81% rename from java/ql/src/change-notes/2025-12-08-maven-no-source-target-flags.md rename to java/ql/src/change-notes/released/1.10.3.md index 3ebe525f822..758236f0cc0 100644 --- a/java/ql/src/change-notes/2025-12-08-maven-no-source-target-flags.md +++ b/java/ql/src/change-notes/released/1.10.3.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 1.10.3 + +### Minor Analysis Improvements + * Java analysis no longer forces `--source` and `--target` compiler flags for Maven builds. This allows Maven to use the project's own compiler configuration, improving build compatibility. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 7303d5a6761..d3e15295550 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.2 +lastReleaseVersion: 1.10.3 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 0bdaeaf48d7..d5ab0a6cc4a 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.3-dev +version: 1.10.4-dev groups: - java - queries diff --git a/java/ql/test/library-tests/dataflow/ssa/A.java b/java/ql/test/library-tests/dataflow/ssa/A.java index 79303697d64..d7047bec276 100644 --- a/java/ql/test/library-tests/dataflow/ssa/A.java +++ b/java/ql/test/library-tests/dataflow/ssa/A.java @@ -4,7 +4,13 @@ public class A { boolean isSafe(Object o) { return o == null; } - void foo() { + void assertSafe(Object o) { if (o != null) throw new RuntimeException(); } + + private boolean wrapIsSafe(Object o) { return isSafe(o); } + + private void wrapAssertSafe(Object o) { assertSafe(o); } + + void test1() { Object x = source(); if (!isSafe(x)) { x = null; @@ -21,4 +27,23 @@ public class A { } sink(x); } + + void test2() { + Object x = source(); + assertSafe(x); + sink(x); + } + + void test3() { + Object x = source(); + if (wrapIsSafe(x)) { + sink(x); + } + } + + void test4() { + Object x = source(); + wrapAssertSafe(x); + sink(x); + } } diff --git a/java/ql/test/library-tests/dataflow/ssa/test.ql b/java/ql/test/library-tests/dataflow/ssa/test.ql index cb601dab5eb..0bea0aa71a1 100644 --- a/java/ql/test/library-tests/dataflow/ssa/test.ql +++ b/java/ql/test/library-tests/dataflow/ssa/test.ql @@ -10,6 +10,14 @@ private predicate isSafe(Guard g, Expr checked, boolean branch) { ) } +private predicate assertSafe(Guard g, Expr checked, GuardValue gv) { + exists(MethodCall mc | g = mc | + mc.getMethod().hasName("assertSafe") and + checked = mc.getAnArgument() and + gv.getDualValue().isThrowsException() + ) +} + module TestConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node source) { source.asExpr().(MethodCall).getMethod().hasName("source") @@ -21,6 +29,8 @@ module TestConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { node = DataFlow::BarrierGuard::getABarrierNode() + or + node = DataFlow::BarrierGuardValue::getABarrierNode() } } diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index f9beb4db97c..b36b8f521a0 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.6.18 + +No user-facing changes. + ## 2.6.17 No user-facing changes. diff --git a/javascript/ql/lib/Expressions/ExprHasNoEffect.qll b/javascript/ql/lib/Expressions/ExprHasNoEffect.qll index 5e194b3fc3a..86f9d4133d8 100644 --- a/javascript/ql/lib/Expressions/ExprHasNoEffect.qll +++ b/javascript/ql/lib/Expressions/ExprHasNoEffect.qll @@ -1,7 +1,7 @@ /** * Provides classes and predicates for the 'js/useless-expression' query. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll b/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll index e8b235eca9b..c9905d98fcc 100644 --- a/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll +++ b/javascript/ql/lib/LanguageFeatures/UnusedIndexVariable.qll @@ -1,7 +1,7 @@ /** * Provides a predicate for identifying unused index variables in loops. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md new file mode 100644 index 00000000000..e28a900e8d9 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-10-21-react-precallgraph-step.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Added `PreCallGraphStep` flow model for React's `useRef` hook. +* Added a `DomValueSource` that uses the `current` property off the object returned by React's `useRef` hook. \ No newline at end of file diff --git a/javascript/ql/lib/change-notes/released/2.6.18.md b/javascript/ql/lib/change-notes/released/2.6.18.md new file mode 100644 index 00000000000..d04860dce6b --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.18.md @@ -0,0 +1,3 @@ +## 2.6.18 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 93b62e82ca2..ce85aee60d1 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.17 +lastReleaseVersion: 2.6.18 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index f70791d9d73..88072819279 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.18-dev +version: 2.6.19-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/lib/semmle/javascript/AMD.qll b/javascript/ql/lib/semmle/javascript/AMD.qll index e66a04ce4ec..479be828f92 100644 --- a/javascript/ql/lib/semmle/javascript/AMD.qll +++ b/javascript/ql/lib/semmle/javascript/AMD.qll @@ -2,7 +2,7 @@ * Provides classes for working with * [Asynchronous Module Definitions](https://github.com/amdjs/amdjs-api/wiki/AMD). */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/AST.qll b/javascript/ql/lib/semmle/javascript/AST.qll index 0e6330605ba..c37a4e938a2 100644 --- a/javascript/ql/lib/semmle/javascript/AST.qll +++ b/javascript/ql/lib/semmle/javascript/AST.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with the AST-based representation of JavaScript programs. */ -overlay[local] +overlay[local?] module; import javascript @@ -477,7 +477,7 @@ module AST { DataFlow::AnalyzedNode analyze() { result = DataFlow::valueNode(this).analyze() } /** Gets the data flow node associated with this program element. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::ValueNode flow() { result = DataFlow::valueNode(this) } diff --git a/javascript/ql/lib/semmle/javascript/CFG.qll b/javascript/ql/lib/semmle/javascript/CFG.qll index 2270ddfeaaf..f7943647d77 100644 --- a/javascript/ql/lib/semmle/javascript/CFG.qll +++ b/javascript/ql/lib/semmle/javascript/CFG.qll @@ -272,7 +272,7 @@ * Note that the `import` statement as a whole is part of the CFG of the body, while its single * import specifier `x as y` forms part of the preamble. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Classes.qll b/javascript/ql/lib/semmle/javascript/Classes.qll index 2485553370c..7f6ea5ba492 100644 --- a/javascript/ql/lib/semmle/javascript/Classes.qll +++ b/javascript/ql/lib/semmle/javascript/Classes.qll @@ -4,7 +4,7 @@ * Class declarations and class expressions are modeled by (QL) classes `ClassDeclaration` * and `ClassExpression`, respectively, which are both subclasses of `ClassDefinition`. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Closure.qll b/javascript/ql/lib/semmle/javascript/Closure.qll index fd13023b2e6..930e94a77d7 100644 --- a/javascript/ql/lib/semmle/javascript/Closure.qll +++ b/javascript/ql/lib/semmle/javascript/Closure.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with the Closure-Library module system. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Comments.qll b/javascript/ql/lib/semmle/javascript/Comments.qll index 46ce8b8a4ba..6365127cad0 100644 --- a/javascript/ql/lib/semmle/javascript/Comments.qll +++ b/javascript/ql/lib/semmle/javascript/Comments.qll @@ -1,5 +1,5 @@ /** Provides classes for working with JavaScript comments. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Constants.qll b/javascript/ql/lib/semmle/javascript/Constants.qll index b0b4a6c03ee..acf154346cb 100644 --- a/javascript/ql/lib/semmle/javascript/Constants.qll +++ b/javascript/ql/lib/semmle/javascript/Constants.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with expressions that evaluate to constant values. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/DefUse.qll b/javascript/ql/lib/semmle/javascript/DefUse.qll index 95cf57d543d..60e0a728691 100644 --- a/javascript/ql/lib/semmle/javascript/DefUse.qll +++ b/javascript/ql/lib/semmle/javascript/DefUse.qll @@ -1,5 +1,5 @@ /** Provides classes and predicates for working with variable definitions and uses. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/E4X.qll b/javascript/ql/lib/semmle/javascript/E4X.qll index ce917c48cff..4fef3ba2389 100644 --- a/javascript/ql/lib/semmle/javascript/E4X.qll +++ b/javascript/ql/lib/semmle/javascript/E4X.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with E4X. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll index 9f37e3082b8..3710942e9e4 100644 --- a/javascript/ql/lib/semmle/javascript/ES2015Modules.qll +++ b/javascript/ql/lib/semmle/javascript/ES2015Modules.qll @@ -1,5 +1,5 @@ /** Provides classes for working with ECMAScript 2015 modules. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Errors.qll b/javascript/ql/lib/semmle/javascript/Errors.qll index 518b76b5346..9015e89efbf 100644 --- a/javascript/ql/lib/semmle/javascript/Errors.qll +++ b/javascript/ql/lib/semmle/javascript/Errors.qll @@ -1,5 +1,5 @@ /** Provides classes for working with syntax errors. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Expr.qll b/javascript/ql/lib/semmle/javascript/Expr.qll index b46faf7e2b7..008cc128377 100644 --- a/javascript/ql/lib/semmle/javascript/Expr.qll +++ b/javascript/ql/lib/semmle/javascript/Expr.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with expressions. */ -overlay[local] +overlay[local?] module; import javascript @@ -253,7 +253,7 @@ class Expr extends @expr, ExprOrStmt, ExprOrType, AST::ValueNode { * Gets the data-flow node where exceptions thrown by this expression will * propagate if this expression causes an exception to be thrown. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getExceptionTarget() { result = getCatchParameterFromStmt(getRawEnclosingStmt(this)) @@ -271,7 +271,7 @@ private DataFlow::Node getCatchParameterFromStmt(Stmt stmt) { DataFlow::parameterNode(stmt.getEnclosingTryCatchStmt().getACatchClause().getAParameter()) } -overlay[caller] +overlay[caller?] pragma[inline] private Stmt getRawEnclosingStmt(Expr e) { // For performance reasons, we need the enclosing statement without overrides diff --git a/javascript/ql/lib/semmle/javascript/Extend.qll b/javascript/ql/lib/semmle/javascript/Extend.qll index e59c11d225e..b871a74a03b 100644 --- a/javascript/ql/lib/semmle/javascript/Extend.qll +++ b/javascript/ql/lib/semmle/javascript/Extend.qll @@ -1,7 +1,7 @@ /** * Provides classes for reasoning about `extend`-like functions. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Externs.qll b/javascript/ql/lib/semmle/javascript/Externs.qll index f894107528c..22d6d03d7dd 100644 --- a/javascript/ql/lib/semmle/javascript/Externs.qll +++ b/javascript/ql/lib/semmle/javascript/Externs.qll @@ -36,7 +36,7 @@ * Array.prototype.length; * */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Files.qll b/javascript/ql/lib/semmle/javascript/Files.qll index 8cc14ca0492..556d25911f1 100644 --- a/javascript/ql/lib/semmle/javascript/Files.qll +++ b/javascript/ql/lib/semmle/javascript/Files.qll @@ -1,5 +1,5 @@ /** Provides classes for working with files and folders. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Functions.qll b/javascript/ql/lib/semmle/javascript/Functions.qll index 9b1f98c3d0b..186ef1bc028 100644 --- a/javascript/ql/lib/semmle/javascript/Functions.qll +++ b/javascript/ql/lib/semmle/javascript/Functions.qll @@ -1,5 +1,5 @@ /** Provides classes for working with functions. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll b/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll index 53e5a779a9b..7b3004dbde4 100644 --- a/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll +++ b/javascript/ql/lib/semmle/javascript/GlobalAccessPaths.qll @@ -1,7 +1,7 @@ /** * Provides predicates for associating qualified names with data flow nodes. */ -overlay[local] +overlay[local?] module; import javascript @@ -357,7 +357,7 @@ module AccessPath { * Gets a variable that is relevant for the computations in the `GetLaterAccess` module. * This predicate restricts as much as it can, but without depending on `getAVariableRef`. */ - overlay[caller] + overlay[caller?] pragma[inline] private SsaVariable getARelevantVariableSimple() { // The variable might be used where `getLaterBaseAccess()` is called. @@ -409,7 +409,7 @@ module AccessPath { * } * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceTo(Root root, string path) { path = fromReference(result, root) and @@ -433,7 +433,7 @@ module AccessPath { * })(NS = NS || {}); * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceTo(string path) { path = fromReference(result, DataFlow::globalAccessPathRootPseudoNode()) @@ -455,7 +455,7 @@ module AccessPath { * } * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAnAssignmentTo(Root root, string path) { path = fromRhs(result, root) and @@ -477,7 +477,7 @@ module AccessPath { * })(foo = foo || {}); * ``` */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAnAssignmentTo(string path) { path = fromRhs(result, DataFlow::globalAccessPathRootPseudoNode()) @@ -488,7 +488,7 @@ module AccessPath { * * See `getAReferenceTo` and `getAnAssignmentTo` for more details. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceOrAssignmentTo(string path) { result = getAReferenceTo(path) @@ -501,7 +501,7 @@ module AccessPath { * * See `getAReferenceTo` and `getAnAssignmentTo` for more details. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::Node getAReferenceOrAssignmentTo(Root root, string path) { result = getAReferenceTo(root, path) @@ -530,7 +530,7 @@ module AccessPath { /** * Gets a `SourceNode` that refers to the same value or access path as the given node. */ - overlay[caller] + overlay[caller?] pragma[inline] DataFlow::SourceNode getAnAliasedSourceNode(DataFlow::Node node) { exists(DataFlow::SourceNode root, string accessPath | diff --git a/javascript/ql/lib/semmle/javascript/HTML.qll b/javascript/ql/lib/semmle/javascript/HTML.qll index 8f70150963e..fa3deaf661f 100644 --- a/javascript/ql/lib/semmle/javascript/HTML.qll +++ b/javascript/ql/lib/semmle/javascript/HTML.qll @@ -1,5 +1,5 @@ /** Provides classes for working with HTML documents. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/JSDoc.qll b/javascript/ql/lib/semmle/javascript/JSDoc.qll index f63e24d9c6c..48d2a984ec4 100644 --- a/javascript/ql/lib/semmle/javascript/JSDoc.qll +++ b/javascript/ql/lib/semmle/javascript/JSDoc.qll @@ -1,5 +1,5 @@ /** Provides classes for working with JSDoc comments. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/JSON.qll b/javascript/ql/lib/semmle/javascript/JSON.qll index ca322bacd46..ba5b42ba1ee 100644 --- a/javascript/ql/lib/semmle/javascript/JSON.qll +++ b/javascript/ql/lib/semmle/javascript/JSON.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with JSON data. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/JSX.qll b/javascript/ql/lib/semmle/javascript/JSX.qll index d182f155354..ab9a4339bf7 100644 --- a/javascript/ql/lib/semmle/javascript/JSX.qll +++ b/javascript/ql/lib/semmle/javascript/JSX.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with JSX code. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Lines.qll b/javascript/ql/lib/semmle/javascript/Lines.qll index 272be691498..e0f675aa6e0 100644 --- a/javascript/ql/lib/semmle/javascript/Lines.qll +++ b/javascript/ql/lib/semmle/javascript/Lines.qll @@ -4,7 +4,7 @@ * This information is only available for snapshots that have been extracted with * the `--extract-program-text` flag. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Locations.qll b/javascript/ql/lib/semmle/javascript/Locations.qll index 1c48a3adbd3..4aa93dd6937 100644 --- a/javascript/ql/lib/semmle/javascript/Locations.qll +++ b/javascript/ql/lib/semmle/javascript/Locations.qll @@ -1,5 +1,5 @@ /** Provides classes for working with locations and program elements that have locations. */ -overlay[local] +overlay[local?] module; import javascript @@ -32,7 +32,7 @@ final class Location extends @location_default { int getNumLines() { result = this.getEndLine() - this.getStartLine() + 1 } /** Holds if this location starts before location `that`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate startsBefore(Location that) { exists(string f, int sl1, int sc1, int sl2, int sc2 | @@ -46,7 +46,7 @@ final class Location extends @location_default { } /** Holds if this location ends after location `that`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate endsAfter(Location that) { exists(string f, int el1, int ec1, int el2, int ec2 | diff --git a/javascript/ql/lib/semmle/javascript/Modules.qll b/javascript/ql/lib/semmle/javascript/Modules.qll index bc69695121e..9bd9ce43451 100644 --- a/javascript/ql/lib/semmle/javascript/Modules.qll +++ b/javascript/ql/lib/semmle/javascript/Modules.qll @@ -3,7 +3,7 @@ * ECMAScript 2015-style modules, and the older CommonJS and AMD-style * modules. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/NodeJS.qll b/javascript/ql/lib/semmle/javascript/NodeJS.qll index dfc2dd15ad3..0fbd8d79a74 100644 --- a/javascript/ql/lib/semmle/javascript/NodeJS.qll +++ b/javascript/ql/lib/semmle/javascript/NodeJS.qll @@ -17,7 +17,7 @@ private import semmle.javascript.dataflow.internal.DataFlowNode * process.stdout.write(fs.readFileSync(process.argv[i], 'utf8')); * ``` */ -overlay[local] +overlay[local?] class NodeModule extends Module { NodeModule() { is_module(this) and @@ -234,7 +234,7 @@ predicate findNodeModulesFolder(Folder f, Folder nodeModules, int distance) { /** * A Node.js `require` variable. */ -overlay[local] +overlay[local?] private class RequireVariable extends Variable { RequireVariable() { this = any(ModuleScope m).getVariable("require") @@ -247,7 +247,7 @@ private class RequireVariable extends Variable { } } -overlay[local] +overlay[local?] private predicate isModuleModule(EarlyStageNode nd) { exists(ImportDeclaration imp | imp.getRawImportPath() = "module" | nd = TDestructuredModuleImportNode(imp) @@ -261,7 +261,7 @@ private predicate isModuleModule(EarlyStageNode nd) { ) } -overlay[local] +overlay[local?] private predicate isCreateRequire(EarlyStageNode nd) { exists(PropAccess prop | isModuleModule(TValueNode(prop.getBase())) and @@ -291,7 +291,7 @@ private predicate isCreateRequire(EarlyStageNode nd) { /** * Holds if `nd` may refer to `require`, either directly or modulo local data flow. */ -overlay[local] +overlay[local?] cached private predicate isRequire(EarlyStageNode nd) { exists(VarAccess access | @@ -334,7 +334,7 @@ private predicate isRequire(EarlyStageNode nd) { * require('fs') * ``` */ -overlay[local] +overlay[local?] class Require extends CallExpr, Import { Require() { isRequire(TValueNode(this.getCallee())) } diff --git a/javascript/ql/lib/semmle/javascript/Promises.qll b/javascript/ql/lib/semmle/javascript/Promises.qll index f373ca87d39..6868505b22a 100644 --- a/javascript/ql/lib/semmle/javascript/Promises.qll +++ b/javascript/ql/lib/semmle/javascript/Promises.qll @@ -186,13 +186,13 @@ module Promises { /** * Gets the pseudo-field used to describe resolved values in a promise. */ - overlay[local] + overlay[local?] string valueProp() { result = "$PromiseResolveField$" } /** * Gets the pseudo-field used to describe rejected values in a promise. */ - overlay[local] + overlay[local?] string errorProp() { result = "$PromiseRejectField$" } /** A property set containing the pseudo-properites of a promise object. */ diff --git a/javascript/ql/lib/semmle/javascript/Regexp.qll b/javascript/ql/lib/semmle/javascript/Regexp.qll index db779e600d6..c42df3939c2 100644 --- a/javascript/ql/lib/semmle/javascript/Regexp.qll +++ b/javascript/ql/lib/semmle/javascript/Regexp.qll @@ -4,7 +4,7 @@ * Regular expression literals are represented as an abstract syntax tree of regular expression * terms. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/SSA.qll b/javascript/ql/lib/semmle/javascript/SSA.qll index 52486a7b7e3..04d08c2343f 100644 --- a/javascript/ql/lib/semmle/javascript/SSA.qll +++ b/javascript/ql/lib/semmle/javascript/SSA.qll @@ -73,7 +73,7 @@ * expression in `k` induces a re-capture of `x` to reflect the fact that `x` * is incremented between the two `console.log` calls. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Stmt.qll b/javascript/ql/lib/semmle/javascript/Stmt.qll index bbdf85df1b1..db0d79de7bd 100644 --- a/javascript/ql/lib/semmle/javascript/Stmt.qll +++ b/javascript/ql/lib/semmle/javascript/Stmt.qll @@ -1,5 +1,5 @@ /** Provides classes for working with statements. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Templates.qll b/javascript/ql/lib/semmle/javascript/Templates.qll index 1b3db059226..d6eaef94589 100644 --- a/javascript/ql/lib/semmle/javascript/Templates.qll +++ b/javascript/ql/lib/semmle/javascript/Templates.qll @@ -1,5 +1,5 @@ /** Provides classes for working with ECMAScript 2015-style template expressions. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Tokens.qll b/javascript/ql/lib/semmle/javascript/Tokens.qll index 4e1c63440b5..cb55a8296e6 100644 --- a/javascript/ql/lib/semmle/javascript/Tokens.qll +++ b/javascript/ql/lib/semmle/javascript/Tokens.qll @@ -1,7 +1,7 @@ /** * Provides classes for working with the token-based representation of JavaScript programs. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll b/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll index 50201363bea..dacc3913e65 100644 --- a/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll +++ b/javascript/ql/lib/semmle/javascript/TypeAnnotations.qll @@ -1,7 +1,7 @@ /** * Provides classes for reasoning about type annotations independently of dialect. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/TypeScript.qll b/javascript/ql/lib/semmle/javascript/TypeScript.qll index b9d6ea0af98..7772ff3e21a 100644 --- a/javascript/ql/lib/semmle/javascript/TypeScript.qll +++ b/javascript/ql/lib/semmle/javascript/TypeScript.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/Variables.qll b/javascript/ql/lib/semmle/javascript/Variables.qll index 5fa7473c304..aa97233af49 100644 --- a/javascript/ql/lib/semmle/javascript/Variables.qll +++ b/javascript/ql/lib/semmle/javascript/Variables.qll @@ -1,5 +1,5 @@ /** Provides classes for modeling program variables. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/XML.qll b/javascript/ql/lib/semmle/javascript/XML.qll index ca401bd3f4b..e4073362fc6 100644 --- a/javascript/ql/lib/semmle/javascript/XML.qll +++ b/javascript/ql/lib/semmle/javascript/XML.qll @@ -1,7 +1,7 @@ /** * Provides classes and predicates for working with XML files and their content. */ -overlay[local] +overlay[local?] module; import semmle.files.FileSystem diff --git a/javascript/ql/lib/semmle/javascript/YAML.qll b/javascript/ql/lib/semmle/javascript/YAML.qll index 01473226b44..21b0825c861 100644 --- a/javascript/ql/lib/semmle/javascript/YAML.qll +++ b/javascript/ql/lib/semmle/javascript/YAML.qll @@ -4,7 +4,7 @@ * YAML documents are represented as abstract syntax trees whose nodes * are either YAML values or alias nodes referring to another YAML value. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll b/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll index c5d9993dbb7..8692f1b6ff3 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/AbstractValues.qll @@ -37,7 +37,7 @@ * they represent; additionally, indefinite abstract values record * the source of imprecision that caused them to arise. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll b/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll index 83d523e0709..3b59fc52952 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/AdditionalFlowSteps.qll @@ -33,7 +33,7 @@ private import semmle.javascript.internal.CachedStages * Note: For performance reasons, all subclasses of this class should be part * of the standard library. Use `isAdditionalFlowStep` for query-specific flow steps. */ -overlay[local] +overlay[local?] class AdditionalFlowStep extends Unit { /** * Holds if `pred` → `succ` should be considered a value-preserving data flow edge.f diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll b/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll index 3b4a6be84d0..ffbb9e497b0 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Configuration.qll @@ -625,19 +625,19 @@ abstract deprecated class LabeledBarrierGuardNode extends BarrierGuardNode { * * For use with load/store steps in `DataFlow::SharedFlowStep` and TypeTracking. */ -overlay[local] +overlay[local?] module PseudoProperties { /** Holds if `s` is a pseudo-property. */ bindingset[s] - overlay[caller] + overlay[caller?] predicate isPseudoProperty(string s) { s.matches("$%$") } bindingset[s] - overlay[caller] + overlay[caller?] private string pseudoProperty(string s) { result = "$" + s + "$" } bindingset[s, v] - overlay[caller] + overlay[caller?] private string pseudoProperty(string s, string v) { result = "$" + s + "|" + v + "$" } /** @@ -684,7 +684,7 @@ module PseudoProperties { * Gets a pseudo-property for the location of a map value where the key is `key`. * The string value of the `key` is encoded in the result, and there is only a result if the string value of `key` is known. */ - overlay[caller] + overlay[caller?] pragma[inline] string mapValueKnownKey(DataFlow::Node key) { result = mapValueKey(any(string s | key.mayHaveStringValue(s))) @@ -694,20 +694,20 @@ module PseudoProperties { * Gets a pseudo-property for the location of a map value where the key is `key`. */ bindingset[key] - overlay[caller] + overlay[caller?] string mapValueKey(string key) { result = pseudoProperty("mapValue", key) } /** * Holds if `prop` equals `mapValueKey(key)` for some value of `key`. */ bindingset[prop] - overlay[caller] + overlay[caller?] predicate isMapValueKey(string prop) { prop.matches("$mapValue|%$") } /** * Gets a pseudo-property for the location of a map value where the key is `key`. */ - overlay[caller] + overlay[caller?] pragma[inline] string mapValue(DataFlow::Node key) { result = mapValueKnownKey(key) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll b/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll index 3c12284d77b..e4cc05595ec 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/CustomAbstractValueDefinitions.qll @@ -7,7 +7,7 @@ * For performance reasons, all subclasses of `CustomAbstractValueDefinition` * should be part of the standard library. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll index d7fa6ba2762..a24d7976b3d 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/DataFlow.qll @@ -17,7 +17,7 @@ * Flow through global variables, object properties or function calls is not * modeled (except for immediately invoked functions as explained above). */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll b/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll index 13aa5628111..c4661b321ea 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/FlowSummary.qll @@ -1,5 +1,5 @@ /** Provides classes and predicates for defining flow summaries. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll b/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll index 48c21d41d75..cfce0fd20cd 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/InferredTypes.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; /** diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll index aa12cfe1864..d854dfc3f62 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Nodes.qll @@ -3,7 +3,7 @@ * as nodes corresponding to function definitions or nodes corresponding to * parameters. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll b/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll index b1302df6fbc..2fa76caed79 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Refinements.qll @@ -27,7 +27,7 @@ * so the refinement can evaluate to both `true` and `false` for the same * candidate value. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll b/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll index 85a8a163cba..55614388e7b 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/Sources.qll @@ -5,7 +5,7 @@ * Note that unlike `TypeTracking.qll`, this library only performs * local tracking within a function. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll index 97daed1f30a..65f0d24e48d 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/AbstractValuesImpl.qll @@ -3,7 +3,7 @@ * * Provides a representation for abstract values. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll index b7538c7ffbf..bd992810517 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/AccessPaths.qll @@ -14,7 +14,7 @@ * to the same value have the same access paths, so access paths are neither sound nor * complete as an approximation of expression semantics. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll index dfa924699ba..ed07ffa7395 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/AdditionalFlowInternal.qll @@ -5,7 +5,7 @@ private import semmle.javascript.dataflow.internal.DataFlowPrivate /** * Gets a data-flow node synthesized using `AdditionalFlowInternal#needsSynthesizedNode`. */ -overlay[local] +overlay[local?] DataFlow::Node getSynthesizedNode(AstNode node, string tag) { result = TGenericSynthesizedNode(node, tag, _) } @@ -13,7 +13,7 @@ DataFlow::Node getSynthesizedNode(AstNode node, string tag) { /** * An extension to `AdditionalFlowStep` with additional internal-only predicates. */ -overlay[local] +overlay[local?] class AdditionalFlowInternal extends DataFlow::AdditionalFlowStep { /** * Holds if a data-flow node should be synthesized for the pair `(node, tag)`. diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll index d29a450274e..787a766c897 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/Contents.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript @@ -337,14 +337,14 @@ module Public { /** * A content set containing only the given content. */ - overlay[caller] + overlay[caller?] pragma[inline] ContentSet singleton(Content content) { result.asSingleton() = content } /** * A content set corresponding to the given property name. */ - overlay[caller] + overlay[caller?] pragma[inline] ContentSet property(PropertyName name) { result.asSingleton().asPropertyName() = name } @@ -405,7 +405,7 @@ module Public { * If `bound` is too large, it is truncated to the greatest lower bound we can represent. */ bindingset[bound] - overlay[caller] + overlay[caller?] ContentSet arrayElementLowerBoundFromInt(int bound) { result = arrayElementLowerBound(bound.minimum(getMaxPreciseArrayIndex() + 1)) } @@ -416,7 +416,7 @@ module Public { * If `n` is too large, it is truncated to the greatest lower bound we can represent. */ bindingset[n] - overlay[caller] + overlay[caller?] ContentSet arrayElementFromInt(int n) { result = arrayElementKnown(n) or @@ -456,7 +456,7 @@ module Public { * If `key` is not one of the keys we track precisely, this is mapped to the unknown key instead. */ bindingset[key] - overlay[caller] + overlay[caller?] ContentSet mapValueFromKey(string key) { result = mapValueWithKnownKey(key) or @@ -519,7 +519,7 @@ module Public { * are mapped to their corresponding content sets (which are no longer seen as property names). */ bindingset[propertyName] - overlay[caller] + overlay[caller?] ContentSet fromLegacyProperty(string propertyName) { result = fromLegacyPseudoProperty(propertyName) or diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll index 4a354e1f759..315c8706bc0 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowNode.qll @@ -3,7 +3,7 @@ * * Contains the raw data type underlying `DataFlow::Node`. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll index 24549e7f1e6..f8836e51ad9 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/DataFlowPrivate.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript @@ -1108,7 +1108,7 @@ DataFlowCallable viableImplInCallContext(DataFlowCall call, DataFlowCall ctx) { } bindingset[node, fun] -overlay[caller] +overlay[caller?] pragma[inline_late] private predicate sameContainerAsEnclosingContainer(Node node, Function fun) { node.getContainer() = fun.getEnclosingContainer() @@ -1517,7 +1517,7 @@ private Node getPostUpdateForStore(Node base) { } /** Gets node to target with a store to the given `base` object.. */ -overlay[caller] +overlay[caller?] pragma[inline] private Node getStoreTarget(DataFlow::Node base) { result = getPostUpdateForStore(base) diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll index 2d199887296..7102e3c6a53 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSteps.qll @@ -524,7 +524,7 @@ private module CachedSteps { /** * Holds if there is a step from `pred` to `succ` through a call to an identity function. */ - overlay[local] + overlay[local?] cached predicate identityFunctionStep(DataFlow::Node pred, DataFlow::CallNode succ) { exists(DataFlow::GlobalVarRefNode global | diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll index 509aa79eda8..fe7bab98341 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/FlowSummaryPrivate.qll @@ -1,7 +1,7 @@ /** * Provides JS specific classes and predicates for defining flow summaries. */ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll index 62892d7e5db..1799bc416ee 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableCapture.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript as js diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll index 8a3b79a420f..96964110e11 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/VariableOrThis.qll @@ -1,4 +1,4 @@ -overlay[local] +overlay[local?] module; private import javascript diff --git a/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll b/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll index edea8ed6c38..7b479ac475b 100644 --- a/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll +++ b/javascript/ql/lib/semmle/javascript/dataflow/internal/sharedlib/Ssa.qll @@ -3,7 +3,7 @@ * * JavaScript's old SSA library is still responsible for the ordinary SSA flow. */ -overlay[local] +overlay[local?] module; private import javascript as js diff --git a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll index beb601dcfb9..944256bd456 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/AngularJS/AngularJSCore.qll @@ -15,7 +15,7 @@ private import AngularJS /** * Holds if `nd` is a reference to the `angular` variable. */ -overlay[local] +overlay[local?] DataFlow::SourceNode angular() { // either as a global result = DataFlow::globalVarRef("angular") diff --git a/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll b/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll index e8b389e91ad..e239c79b852 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/LazyCache.qll @@ -1,7 +1,7 @@ /** * Models imports through the NPM `lazy-cache` package. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll b/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll index fe07e4f1967..74808368c71 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/LodashUnderscore.qll @@ -9,7 +9,7 @@ module LodashUnderscore { /** * A data flow node that accesses a given member of `lodash` or `underscore`. */ - overlay[local] + overlay[local?] abstract class Member extends DataFlow::SourceNode { /** Gets the name of the accessed member. */ abstract string getName(); @@ -18,7 +18,7 @@ module LodashUnderscore { /** * An import of `lodash` or `underscore` accessing a given member of that package. */ - overlay[local] + overlay[local?] private class DefaultMember extends Member { string name; @@ -41,14 +41,14 @@ module LodashUnderscore { * In addition to normal imports, this supports per-method imports such as `require("lodash.map")` and `require("lodash/map")`. * In addition, the global variable `_` is assumed to refer to `lodash` or `underscore`. */ - overlay[local] + overlay[local?] DataFlow::SourceNode member(string name) { result.(Member).getName() = name } /** * Holds if `name` is the name of a member exported from the `lodash` package * which has a corresponding `lodash.xxx` NPM package. */ - overlay[local] + overlay[local?] private predicate isLodashMember(string name) { // Can be generated using Object.keys(require('lodash')) name = @@ -185,7 +185,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashEach extends DataFlow::SummarizedCallable { LodashEach() { this = "_.each-like" } @@ -201,7 +201,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashMap extends DataFlow::SummarizedCallable { LodashMap() { this = "_.map" } @@ -220,7 +220,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashFlatMap extends DataFlow::SummarizedCallable { LodashFlatMap() { this = "_.flatMap" } @@ -242,7 +242,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashFlatMapDeep extends DataFlow::SummarizedCallable { LodashFlatMapDeep() { this = "_.flatMapDeep" } @@ -266,7 +266,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashReduce extends DataFlow::SummarizedCallable { LodashReduce() { this = "_.reduce-like" } @@ -285,7 +285,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LoashSortBy extends DataFlow::SummarizedCallable { LoashSortBy() { this = "_.sortBy-like" } @@ -303,7 +303,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashMinMaxBy extends DataFlow::SummarizedCallable { LodashMinMaxBy() { this = "_.minBy / _.maxBy" } @@ -317,7 +317,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashPartition extends DataFlow::SummarizedCallable { LodashPartition() { this = "_.partition" } @@ -331,7 +331,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class UnderscoreMapObject extends DataFlow::SummarizedCallable { UnderscoreMapObject() { this = "_.mapObject" } @@ -352,7 +352,7 @@ module LodashUnderscore { } } - overlay[local] + overlay[local?] private class LodashTap extends DataFlow::SummarizedCallable { LodashTap() { this = "_.tap" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll index 89d436bb64c..b6506ddd648 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/NodeJSLib.qll @@ -8,17 +8,17 @@ import semmle.javascript.security.SensitiveActions private import semmle.javascript.dataflow.internal.PreCallGraphStep module NodeJSLib { - overlay[local] + overlay[local?] private GlobalVariable processVariable() { variables(result, "process", any(GlobalScope sc)) } - overlay[local] + overlay[local?] pragma[nomagic] private GlobalVarAccess processExprInTopLevel(TopLevel tl) { result = processVariable().getAnAccess() and tl = result.getTopLevel() } - overlay[local] + overlay[local?] pragma[nomagic] private GlobalVarAccess processExprInNodeModule() { result = processExprInTopLevel(any(NodeModule m)) @@ -28,7 +28,7 @@ module NodeJSLib { * An access to the global `process` variable in a Node.js module, interpreted as * an import of the `process` module. */ - overlay[local] + overlay[local?] private class ImplicitProcessImport extends DataFlow::ModuleImportNode::Range { ImplicitProcessImport() { this = DataFlow::exprNode(processExprInNodeModule()) } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll b/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll index c0188361e72..957121da5af 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/PropertyProjection.qll @@ -4,7 +4,7 @@ * Subclass `PropertyProjection` to refine the behavior of the analysis on existing property projections. * Subclass `CustomPropertyProjection` to introduce new kinds of property projections. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index d55ace8636d..42885f6b9cb 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -612,6 +612,25 @@ private class UseStateStep extends PreCallGraphStep { } } +/** + * Step through a `useRef` call. + * + * It returns an object with a single property (`current`) initialized to the initial value. + * + * For example: + * ```js + * const inputRef1 = useRef(initialValue); + * ``` + */ +private class UseRefStep extends PreCallGraphStep { + override predicate step(DataFlow::Node pred, DataFlow::Node succ) { + exists(DataFlow::CallNode call | call = react().getAMemberCall("useRef") | + pred = call.getArgument(0) and // initial state + succ = call.getAPropertyRead("current") + ) + } +} + /** * A step through a React context object. * @@ -785,6 +804,17 @@ private class ReactRouterLocationSource extends DOM::LocationSource::Range { } } +private class UseRefDomValueSource extends DOM::DomValueSource::Range { + UseRefDomValueSource() { + this = + any(JsxAttribute attrib | attrib.getName() = "ref") + .getValue() + .flow() + .getALocalSource() + .getAPropertyRead("current") + } +} + /** * Gets a reference to a function which, if called with a React component, returns wrapped * version of that component, which we model as a direct reference to the underlying component. diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll index f1f91785329..d63bafe7b6f 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Templating.qll @@ -1,7 +1,7 @@ /** * Provides predicates for working with templating libraries. */ -overlay[local] +overlay[local?] module; import javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll b/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll index 9097497b4f0..03887819b25 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/UriLibraries.qll @@ -422,7 +422,7 @@ private module ClosureLibraryUri { } } -overlay[local] +overlay[local?] private class QueryStringStringification extends DataFlow::SummarizedCallable { QueryStringStringification() { this = "query-string stringification" } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll index 9e7f94c139b..5d65f901d22 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/ModelsAsData.qll @@ -48,7 +48,7 @@ private class ThreatModelSourceFromDataExtension extends ThreatModelSource::Rang } } -overlay[local] +overlay[local?] private class SummarizedCallableFromModel extends DataFlow::SummarizedCallable { string type; string path; diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll index 2074b18600d..3fb76f76f70 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsSpecific.qll @@ -41,7 +41,7 @@ class Location = JS::Location; * The model generator must explicitly generate the step between `(package)` and `(package).foo`, for example. */ bindingset[rawType] -overlay[caller] +overlay[caller?] predicate parseTypeString(string rawType, string package, string qualifiedName) { exists(string regexp | regexp = "('[^']+'|[^.]+)(.*)" and @@ -56,7 +56,7 @@ predicate parseTypeString(string rawType, string package, string qualifiedName) /** * Holds if models describing `package` may be relevant for the analysis of this database. */ -overlay[local] +overlay[local?] predicate isPackageUsed(string package) { package = "global" or @@ -70,7 +70,7 @@ predicate isPackageUsed(string package) { } bindingset[type] -overlay[local] +overlay[local?] predicate isTypeUsed(string type) { exists(string package | parseTypeString(type, package, _) and @@ -82,10 +82,10 @@ predicate isTypeUsed(string type) { * Holds if `type` can be obtained from an instance of `otherType` due to * language semantics modeled by `getExtraNodeFromType`. */ -overlay[local] +overlay[local?] predicate hasImplicitTypeModel(string type, string otherType) { none() } -overlay[local] +overlay[local?] pragma[nomagic] private predicate parseRelevantTypeString(string rawType, string package, string qualifiedName) { isRelevantFullPath(rawType, _) and diff --git a/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll b/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll index d422c960a8f..e0324bf5a6b 100644 --- a/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll +++ b/javascript/ql/lib/semmle/javascript/internal/BasicBlockInternal.qll @@ -2,7 +2,7 @@ * Provides classes for working with basic blocks, and predicates for computing * liveness information for local variables. */ -overlay[local] +overlay[local?] module; import javascript @@ -320,7 +320,7 @@ module Public { /** * Holds if this basic block strictly dominates `bb`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate strictlyDominates(ReachableBasicBlock bb) { this = immediateDominator+(bb) } @@ -329,14 +329,14 @@ module Public { * * This predicate is reflexive: each reachable basic block dominates itself. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate dominates(ReachableBasicBlock bb) { this = immediateDominator*(bb) } /** * Holds if this basic block strictly post-dominates `bb`. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate strictlyPostDominates(ReachableBasicBlock bb) { this = immediatePostDominator+(bb) } @@ -345,7 +345,7 @@ module Public { * * This predicate is reflexive: each reachable basic block post-dominates itself. */ - overlay[caller] + overlay[caller?] pragma[inline] predicate postDominates(ReachableBasicBlock bb) { this = immediatePostDominator*(bb) } } diff --git a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll index 17aa82ced6c..eab6b76b031 100644 --- a/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll +++ b/javascript/ql/lib/semmle/javascript/internal/CachedStages.qll @@ -40,7 +40,7 @@ module Stages { /** * The `ast` stage. */ - overlay[local] + overlay[local?] cached module Ast { /** @@ -85,7 +85,7 @@ module Stages { /** * The `basicblocks` stage. */ - overlay[local] + overlay[local?] cached module BasicBlocks { /** @@ -112,7 +112,7 @@ module Stages { /** * The part of data flow computed before flow summary nodes. */ - overlay[local] + overlay[local?] cached module EarlyDataFlowStage { /** @@ -137,7 +137,7 @@ module Stages { /** * The `dataflow` stage. */ - overlay[local] + overlay[local?] cached module DataFlowStage { /** diff --git a/javascript/ql/lib/semmle/javascript/internal/Overlay.qll b/javascript/ql/lib/semmle/javascript/internal/Overlay.qll index d1ca1f2b0da..db3dc8ac6bf 100644 --- a/javascript/ql/lib/semmle/javascript/internal/Overlay.qll +++ b/javascript/ql/lib/semmle/javascript/internal/Overlay.qll @@ -2,10 +2,10 @@ private import javascript private import OverlayXml /** Holds if the database is an overlay. */ -overlay[local] +overlay[local?] private predicate isOverlay() { databaseMetadata("isOverlay", "true") } -overlay[local] +overlay[local?] private string getFileFromEntity(@locatable node) { exists(@location loc | hasLocation(node, loc) @@ -19,11 +19,11 @@ private string getFileFromEntity(@locatable node) { } /** Holds if `file` was changed or deleted in the overlay. */ -overlay[local] +overlay[local?] private predicate discardFile(string file) { isOverlay() and overlayChangedFiles(file) } /** Holds if `node` is in the `file` and is part of the overlay base database. */ -overlay[local] +overlay[local?] private predicate discardableEntity(string file, @locatable node) { not isOverlay() and file = getFileFromEntity(node) } @@ -34,7 +34,7 @@ private predicate discardEntity(@locatable node) { exists(string file | discardableEntity(file, node) and discardFile(file)) } -overlay[local] +overlay[local?] private string getFileFromLocation(@location loc) { exists(@file file | locations_default(loc, file, _, _, _, _) and @@ -43,7 +43,7 @@ private string getFileFromLocation(@location loc) { } /** Holds if `loc` is in the `file` and is part of the overlay base database. */ -overlay[local] +overlay[local?] private predicate discardableLocation(string file, @location node) { not isOverlay() and file = getFileFromLocation(node) } diff --git a/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll b/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll index 741575c3242..65984e2eb9b 100644 --- a/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll +++ b/javascript/ql/lib/semmle/javascript/internal/StmtContainers.qll @@ -4,7 +4,7 @@ * Provides predicates and classes for relating nodes to their * enclosing `StmtContainer`. */ -overlay[local] +overlay[local?] module; private import javascript @@ -48,7 +48,7 @@ class NodeInStmtContainer extends Locatable, @node_in_stmt_container { /** * Gets the function or toplevel to which this node belongs. */ - overlay[caller] + overlay[caller?] pragma[inline] final StmtContainer getContainer() { result = getStmtContainer(this) } } diff --git a/javascript/ql/lib/utils/test/InlineSummaries.qll b/javascript/ql/lib/utils/test/InlineSummaries.qll index 0366736eaf6..1633e056b7f 100644 --- a/javascript/ql/lib/utils/test/InlineSummaries.qll +++ b/javascript/ql/lib/utils/test/InlineSummaries.qll @@ -1,7 +1,7 @@ import javascript import semmle.javascript.dataflow.FlowSummary -overlay[local] +overlay[local?] class MkSummary extends SummarizedCallable { private CallExpr mkSummary; diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 166ee6e7c29..11b27f044cf 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.3 + +No user-facing changes. + ## 2.2.2 No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/2.2.3.md b/javascript/ql/src/change-notes/released/2.2.3.md new file mode 100644 index 00000000000..1db16246c5a --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.2.3.md @@ -0,0 +1,3 @@ +## 2.2.3 + +No user-facing changes. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 31b4d2fab76..5ee5c5be7fc 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.2.2 +lastReleaseVersion: 2.2.3 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index a655acffcf9..1ef59ad1834 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.2.3-dev +version: 2.2.4-dev groups: - javascript - queries diff --git a/misc/bazel/csharp.bzl b/misc/bazel/csharp.bzl index 7a317909627..0cf2e30d0de 100644 --- a/misc/bazel/csharp.bzl +++ b/misc/bazel/csharp.bzl @@ -2,7 +2,7 @@ load("@rules_dotnet//dotnet:defs.bzl", "csharp_binary", "csharp_library", "cshar load("@rules_pkg//pkg:mappings.bzl", "strip_prefix") load("//misc/bazel:pkg.bzl", "codeql_pkg_files") -TARGET_FRAMEWORK = "net9.0" +TARGET_FRAMEWORK = "net10.0" def _gen_assembly_info(name): assembly_info_gen = name + "-assembly-info" diff --git a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel deleted file mode 100644 index ba047f282b0..00000000000 --- a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/MODULE.bazel +++ /dev/null @@ -1,57 +0,0 @@ -"rules_dotnet" - -module( - name = "rules_dotnet", - version = "0.19.2-codeql.1", - bazel_compatibility = [">=7.0.0"], - compatibility_level = 0, -) - -dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") -dotnet.toolchain(dotnet_version = "9.0.300") -use_repo(dotnet, "dotnet_toolchains") - -register_toolchains("@dotnet_toolchains//:all") - -paket2bazel_dependencies_extension = use_extension("//dotnet:paket.paket2bazel_dependencies_extension.bzl", "paket2bazel_dependencies_extension") -use_repo(paket2bazel_dependencies_extension, "paket.paket2bazel_dependencies") - -rules_dotnet_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_packages_extension.bzl", "rules_dotnet_nuget_packages_extension") -use_repo(rules_dotnet_nuget_packages_extension, "paket.rules_dotnet_nuget_packages") - -targeting_packs_extension = use_extension("//dotnet/private/sdk/targeting_packs:dotnet.targeting_packs_extension.bzl", "targeting_packs_extension") -use_repo(targeting_packs_extension, "dotnet.targeting_packs") - -runtime_packs_extension = use_extension("//dotnet/private/sdk/runtime_packs:dotnet.runtime_packs_extension.bzl", "runtime_packs_extension") -use_repo(runtime_packs_extension, "dotnet.runtime_packs") - -apphost_packs_extension = use_extension("//dotnet/private/sdk/apphost_packs:dotnet.apphost_packs_extension.bzl", "apphost_packs_extension") -use_repo(apphost_packs_extension, "dotnet.apphost_packs") - -bazel_dep(name = "bazel_skylib", version = "1.7.1") -bazel_dep(name = "platforms", version = "1.0.0") -bazel_dep(name = "aspect_bazel_lib", version = "2.19.4") -bazel_dep(name = "rules_shell", version = "0.5.0") - -# Dev dependencies -bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True) -bazel_dep(name = "rules_pkg", version = "1.1.0", dev_dependency = True) -bazel_dep(name = "gazelle", version = "0.44.0", dev_dependency = True, repo_name = "bazel_gazelle") -bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.7.1", dev_dependency = True) -bazel_dep(name = "rules_cc", version = "0.1.2", dev_dependency = True) -bazel_dep(name = "rules_testing", version = "0.8.0", dev_dependency = True) -bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True) -bazel_dep(name = "dotnet_test_resources_other_repo", version = "", dev_dependency = True) -local_path_override( - module_name = "dotnet_test_resources_other_repo", - path = "dotnet/private/tests/resources/other_repo", -) - -rules_dotnet_dev_nuget_packages_extension = use_extension("//dotnet:paket.rules_dotnet_dev_nuget_packages_extension.bzl", "rules_dotnet_dev_nuget_packages_extension", dev_dependency = True) -use_repo(rules_dotnet_dev_nuget_packages_extension, "paket.rules_dotnet_dev_nuget_packages") - -rules_dotnet_nuget_resource_assemblies_tests_extension = use_extension("//dotnet:paket.rules_dotnet_nuget_resource_assemblies_tests_extension.bzl", "rules_dotnet_nuget_resource_assemblies_tests_extension", dev_dependency = True) -use_repo(rules_dotnet_nuget_resource_assemblies_tests_extension, "paket.rules_dotnet_nuget_resource_assemblies_tests") - -internal_dev_deps = use_extension("//dotnet:internal_dev_deps.bzl", "internal_dev_deps", dev_dependency = True) -use_repo(internal_dev_deps, "buildkite_config") diff --git a/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel new file mode 100644 index 00000000000..caaf52f2b9b --- /dev/null +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/MODULE.bazel @@ -0,0 +1,71 @@ +"rules_dotnet" + +module( + name = "rules_dotnet", + version = "0.21.5-codeql.1", + bazel_compatibility = [">=8.0.0"], + compatibility_level = 0, +) + +dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet") +dotnet.toolchain(dotnet_version = "10.0.100") +dotnet.toolchain( + name = "dotnet_apphost", + dotnet_version = "10.0.100", +) +use_repo(dotnet, "dotnet_toolchains") + +# These toolchains are used to build the apphost shimmer +use_repo(dotnet, "dotnet_apphost_x86_64-unknown-linux-gnu") +use_repo(dotnet, "dotnet_apphost_arm64-unknown-linux-gnu") +use_repo(dotnet, "dotnet_apphost_aarch64-apple-darwin") +use_repo(dotnet, "dotnet_apphost_x86_64-apple-darwin") +use_repo(dotnet, "dotnet_apphost_x86_64-pc-windows-msvc") +use_repo(dotnet, "dotnet_apphost_arm64-pc-windows-msvc") + +register_toolchains("@dotnet_toolchains//:all") + +paket2bazel_dependencies_extension = use_extension("@rules_dotnet//dotnet:paket.paket2bazel_dependencies_extension.bzl", "paket2bazel_dependencies_extension") +use_repo(paket2bazel_dependencies_extension, "paket.paket2bazel_dependencies") + +rules_dotnet_nuget_packages_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_nuget_packages_extension.bzl", "rules_dotnet_nuget_packages_extension") +use_repo(rules_dotnet_nuget_packages_extension, "paket.rules_dotnet_nuget_packages") + +targeting_packs_extension = use_extension("@rules_dotnet//dotnet/private/sdk/targeting_packs:dotnet.targeting_packs_extension.bzl", "targeting_packs_extension") +use_repo(targeting_packs_extension, "dotnet.targeting_packs") + +runtime_packs_extension = use_extension("@rules_dotnet//dotnet/private/sdk/runtime_packs:dotnet.runtime_packs_extension.bzl", "runtime_packs_extension") +use_repo(runtime_packs_extension, "dotnet.runtime_packs") + +apphost_packs_extension = use_extension("@rules_dotnet//dotnet/private/sdk/apphost_packs:dotnet.apphost_packs_extension.bzl", "apphost_packs_extension") +use_repo(apphost_packs_extension, "dotnet.apphost_packs") + +bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "platforms", version = "1.0.0") +bazel_dep(name = "bazel_lib", version = "3.0.0") +bazel_dep(name = "rules_shell", version = "0.5.0") + +# Dev dependencies +bazel_dep(name = "rules_pkg", version = "1.1.0", dev_dependency = True) +bazel_dep(name = "gazelle", version = "0.44.0", dev_dependency = True, repo_name = "bazel_gazelle") +bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.7.1", dev_dependency = True) +bazel_dep(name = "rules_cc", version = "0.1.2", dev_dependency = True) +bazel_dep(name = "rules_testing", version = "0.8.0", dev_dependency = True) +bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True) +bazel_dep(name = "dotnet_test_resources_other_repo", version = "", dev_dependency = True) +local_path_override( + module_name = "dotnet_test_resources_other_repo", + path = "dotnet/private/tests/resources/other_repo", +) + +rules_dotnet_dev_nuget_packages_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_dev_nuget_packages_extension.bzl", "rules_dotnet_dev_nuget_packages_extension", dev_dependency = True) +use_repo(rules_dotnet_dev_nuget_packages_extension, "paket.rules_dotnet_dev_nuget_packages") + +rules_dotnet_nuget_resource_assemblies_tests_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_nuget_resource_assemblies_tests_extension.bzl", "rules_dotnet_nuget_resource_assemblies_tests_extension", dev_dependency = True) +use_repo(rules_dotnet_nuget_resource_assemblies_tests_extension, "paket.rules_dotnet_nuget_resource_assemblies_tests") + +internal_dev_deps = use_extension("@rules_dotnet//dotnet:internal_dev_deps.bzl", "internal_dev_deps", dev_dependency = True) +use_repo(internal_dev_deps, "buildkite_config") + +rules_dotnet_nuget_tool_tests_extension = use_extension("@rules_dotnet//dotnet:paket.rules_dotnet_nuget_tool_tests_extension.bzl", "rules_dotnet_nuget_tool_tests_extension", dev_dependency = True) +use_repo(rules_dotnet_nuget_tool_tests_extension, "paket.rules_dotnet_nuget_tool_tests") diff --git a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/patches/revert_additional_files_in_nuget_archive.patch b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/patches/revert_additional_files_in_nuget_archive.patch similarity index 100% rename from misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/patches/revert_additional_files_in_nuget_archive.patch rename to misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/patches/revert_additional_files_in_nuget_archive.patch diff --git a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json similarity index 57% rename from misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json rename to misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json index 928683521e2..aabd82d97c0 100644 --- a/misc/bazel/registry/modules/rules_dotnet/0.19.2-codeql.1/source.json +++ b/misc/bazel/registry/modules/rules_dotnet/0.21.5-codeql.1/source.json @@ -1,7 +1,7 @@ { - "integrity": "sha256-6f9LidI9BUve7+TpoL1sh5GKC6sgLSYNImlVnVaiHEE=", - "strip_prefix": "rules_dotnet-0.19.2", - "url": "https://github.com/bazel-contrib/rules_dotnet/releases/download/v0.19.2/rules_dotnet-v0.19.2.tar.gz", + "integrity": "sha256-fgvSYSFAtQh+MuDzTji3iWR642WwefGCSzCLLUtZyFE=", + "strip_prefix": "rules_dotnet-0.21.5", + "url": "https://github.com/bazel-contrib/rules_dotnet/releases/download/v0.21.5/rules_dotnet-v0.21.5.tar.gz", "patches": { "revert_additional_files_in_nuget_archive.patch": "sha256-FzMKXeHVhIBXQRCNFB0EANDszgJc/BBaPgWCzkbW9Ck=" }, diff --git a/misc/bazel/registry/modules/rules_dotnet/metadata.json b/misc/bazel/registry/modules/rules_dotnet/metadata.json index 684babcda14..ea34a05cfb6 100644 --- a/misc/bazel/registry/modules/rules_dotnet/metadata.json +++ b/misc/bazel/registry/modules/rules_dotnet/metadata.json @@ -13,7 +13,7 @@ "github:bazel-contrib/rules_dotnet" ], "versions": [ - "0.19.2-codeql.1" + "0.21.5-codeql.1" ], "yanked_versions": {} } diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 26ed76e0015..5e5c3c37bae 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.38.md b/misc/suite-helpers/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 88499ce2fa6..3a79aea9f46 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.38-dev +version: 1.0.39-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 94be3c9b8b1..17da65f262d 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.3 + +No user-facing changes. + ## 5.0.2 No user-facing changes. diff --git a/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md b/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md new file mode 100644 index 00000000000..8ba2ef549ee --- /dev/null +++ b/python/ql/lib/change-notes/2025-11-22-tornado-websockets.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Additional models for remote flow sources for `tornado.websocket.WebSocketHandler` have been added. \ No newline at end of file diff --git a/python/ql/lib/change-notes/released/5.0.3.md b/python/ql/lib/change-notes/released/5.0.3.md new file mode 100644 index 00000000000..57074925279 --- /dev/null +++ b/python/ql/lib/change-notes/released/5.0.3.md @@ -0,0 +1,3 @@ +## 5.0.3 + +No user-facing changes. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 3940dee0f32..6997554f6dd 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.2 +lastReleaseVersion: 5.0.3 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 80a0e095778..43e09a9cd09 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 5.0.3-dev +version: 5.0.4-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/lib/semmle/python/frameworks/Tornado.qll b/python/ql/lib/semmle/python/frameworks/Tornado.qll index 7cfe381b1f9..61cf7df316e 100644 --- a/python/ql/lib/semmle/python/frameworks/Tornado.qll +++ b/python/ql/lib/semmle/python/frameworks/Tornado.qll @@ -135,6 +135,8 @@ module Tornado { API::Node subclassRef() { result = web().getMember("RequestHandler").getASubclass*() or + result = WebSocket::WebSocketHandler::subclassRef() + or result = ModelOutput::getATypeNode("tornado.web.RequestHandler~Subclass").getASubclass*() } @@ -428,6 +430,49 @@ module Tornado { } } } + + // --------------------------------------------------------------------------- + // tornado.websocket + // --------------------------------------------------------------------------- + /** Gets a reference to the `tornado.websocket` module. */ + API::Node websocket() { result = Tornado::tornado().getMember("websocket") } + + /** Provides models for the `tornado.websocket` module */ + module WebSocket { + /** + * Provides models for the `tornado.websocket.WebSocketHandler` class and subclasses. + * + * See https://www.tornadoweb.org/en/stable/websocket.html#tornado.websocket.WebSocketHandler. + */ + module WebSocketHandler { + /** Gets a reference to the `tornado.websocket.WebSocketHandler` class or any subclass. */ + API::Node subclassRef() { + result = websocket().getMember("WebSocketHandler").getASubclass*() + or + result = + ModelOutput::getATypeNode("tornado.websocket.WebSocketHandler~Subclass").getASubclass*() + } + + /** A subclass of `tornado.websocket.WebSocketHandler`. */ + class WebSocketHandlerClass extends Web::RequestHandler::RequestHandlerClass { + WebSocketHandlerClass() { this.getParent() = subclassRef().asSource().asExpr() } + + override Function getARequestHandler() { + result = super.getARequestHandler() + or + result = this.getAMethod() and + result.getName() = "open" + } + + /** Gets a function that could handle incoming WebSocket events, if any. */ + Function getAWebSocketEventHandler() { + result = this.getAMethod() and + result.getName() = + ["on_message", "on_close", "on_ping", "on_pong", "select_subprotocol", "check_origin"] + } + } + } + } } // --------------------------------------------------------------------------- @@ -542,6 +587,27 @@ module Tornado { override string getFramework() { result = "Tornado" } } + /** A request handler for WebSocket events. */ + private class TornadoWebSocketEventHandler extends Http::Server::RequestHandler::Range { + TornadoWebSocketEventHandler() { + exists(TornadoModule::WebSocket::WebSocketHandler::WebSocketHandlerClass cls | + cls.getAWebSocketEventHandler() = this + ) + } + + override Parameter getARoutedParameter() { + // The `open` method is handled as a normal request handler in `TornadoRouteSetup` or `TornadoRequestHandlerWithoutKnownRoute`. + // For other event handlers (such as `on_message`), all parameters should be remote flow sources, as they are not affected by routing. + result in [ + this.getArg(_), this.getArgByName(_), this.getVararg().(Parameter), + this.getKwarg().(Parameter) + ] and + not result = this.getArg(0) + } + + override string getFramework() { result = "Tornado" } + } + // --------------------------------------------------------------------------- // Response modeling // --------------------------------------------------------------------------- diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 0e6b6f8f677..43e0f12a212 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.3 + +No user-facing changes. + ## 1.7.2 No user-facing changes. diff --git a/python/ql/src/change-notes/released/1.7.3.md b/python/ql/src/change-notes/released/1.7.3.md new file mode 100644 index 00000000000..a629082e215 --- /dev/null +++ b/python/ql/src/change-notes/released/1.7.3.md @@ -0,0 +1,3 @@ +## 1.7.3 + +No user-facing changes. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 39bbba86c19..9f9661b1e77 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.2 +lastReleaseVersion: 1.7.3 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index a71b676aaca..cc3a6b25740 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.3-dev +version: 1.7.4-dev groups: - python - queries diff --git a/python/ql/test/library-tests/frameworks/tornado/routing_test.py b/python/ql/test/library-tests/frameworks/tornado/routing_test.py index 2b596c20ce5..1cff63921da 100644 --- a/python/ql/test/library-tests/frameworks/tornado/routing_test.py +++ b/python/ql/test/library-tests/frameworks/tornado/routing_test.py @@ -1,5 +1,6 @@ import tornado.web import tornado.routing +import tornado.websocket class FooHandler(tornado.web.RequestHandler): @@ -54,6 +55,26 @@ class PossiblyNotRouted(tornado.web.RequestHandler): def get(self): # $ requestHandler self.write("NotRouted") # $ HttpResponse +class WebSocket(tornado.websocket.WebSocketHandler): + def open(self, x): # $ requestHandler routedParameter=x + self.write_message("WebSocket open {}".format(x)) # $ MISSING: HttpResponse + + def on_message(self, data): # $ requestHandler routedParameter=data + self.write_message("WebSocket on_message {}".format(data)) # $ MISSING: HttpResponse + + def on_ping(self, data): # $ requestHandler routedParameter=data + print("ping", data) + + def on_pong(self, data): # $ requestHandler routedParameter=data + print("pong", data) + + def select_subprotocol(self, subs): # $ requestHandler routedParameter=subs + print("select_subprotocol", subs) + + def check_origin(self, origin): # $ requestHandler routedParameter=origin + print("check_origin", origin) + return True + def make_app(): # see https://www.tornadoweb.org/en/stable/routing.html for even more examples @@ -74,6 +95,7 @@ def make_app(): (tornado.routing.HostMatches(r"(localhost|127\.0\.0\.1)"), [ ("/only-localhost", OnlyLocalhost) # $ routeSetup="/only-localhost" ]), + (r"/websocket/([0-9]+)", WebSocket), # $ routeSetup="/websocket/([0-9]+)" ], debug=True, diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index fcb8e3b2745..7c3ccd16c8a 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.6 + +No user-facing changes. + ## 5.1.5 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.6.md b/ruby/ql/lib/change-notes/released/5.1.6.md new file mode 100644 index 00000000000..74ba63bd37a --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.6.md @@ -0,0 +1,3 @@ +## 5.1.6 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index fee02733251..5ddeeed69fc 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.5 +lastReleaseVersion: 5.1.6 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 56041f3ddec..6cc2814827c 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.6-dev +version: 5.1.7-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 24e725365af..ab000feb4a3 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.3 + +No user-facing changes. + ## 1.5.2 No user-facing changes. diff --git a/ruby/ql/src/change-notes/released/1.5.3.md b/ruby/ql/src/change-notes/released/1.5.3.md new file mode 100644 index 00000000000..2e9bcb5e663 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.5.3.md @@ -0,0 +1,3 @@ +## 1.5.3 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 7eb901bae56..232224b0e26 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.5.3 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index ca906b7f8b3..833f85894e3 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.3-dev +version: 1.5.4-dev groups: - ruby - queries diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 4b68c1d42a6..ddacc0d913e 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -15,6 +15,7 @@ use ungrammar::Grammar; fn class_name(type_name: &str) -> String { match type_name { + "Adt" => "TypeItem".to_owned(), "BinExpr" => "BinaryExpr".to_owned(), "ElseBranch" => "Expr".to_owned(), "Fn" => "Function".to_owned(), diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql new file mode 100644 index 00000000000..6df51a29ffe --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/downgrade.ql @@ -0,0 +1,73 @@ +class Element extends @element { + string toString() { none() } +} + +class Enum extends Element, @enum { } + +class Struct extends Element, @struct { } + +class Union extends Element, @union { } + +class Attr extends Element, @attr { } + +class GenericParamList extends Element, @generic_param_list { } + +class Name extends Element, @name { } + +class Visibility extends Element, @visibility { } + +class WhereClause extends Element, @where_clause { } + +query predicate new_enum_attrs(Enum enum, int index, Attr attr) { + type_item_attrs(enum, index, attr) +} + +query predicate new_enum_generic_param_lists(Enum enum, GenericParamList g) { + type_item_generic_param_lists(enum, g) +} + +query predicate new_enum_names(Enum enum, Name name) { type_item_names(enum, name) } + +query predicate new_enum_visibilities(Enum enum, Visibility visibility) { + type_item_visibilities(enum, visibility) +} + +query predicate new_enum_where_clauses(Enum enum, WhereClause whereClause) { + type_item_where_clauses(enum, whereClause) +} + +query predicate new_struct_attrs(Struct struct, int index, Attr attr) { + type_item_attrs(struct, index, attr) +} + +query predicate new_struct_generic_param_lists(Struct struct, GenericParamList g) { + type_item_generic_param_lists(struct, g) +} + +query predicate new_struct_names(Struct struct, Name name) { type_item_names(struct, name) } + +query predicate new_struct_visibilities(Struct struct, Visibility visibility) { + type_item_visibilities(struct, visibility) +} + +query predicate new_struct_where_clauses(Struct struct, WhereClause whereClause) { + type_item_where_clauses(struct, whereClause) +} + +query predicate new_union_attrs(Union union, int index, Attr attr) { + type_item_attrs(union, index, attr) +} + +query predicate new_union_generic_param_lists(Union union, GenericParamList g) { + type_item_generic_param_lists(union, g) +} + +query predicate new_union_names(Union union, Name name) { type_item_names(union, name) } + +query predicate new_union_visibilities(Union union, Visibility visibility) { + type_item_visibilities(union, visibility) +} + +query predicate new_union_where_clauses(Union union, WhereClause whereClause) { + type_item_where_clauses(union, whereClause) +} diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme new file mode 100644 index 00000000000..c467bf63916 --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/old.dbscheme @@ -0,0 +1,3562 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- 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 +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string 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 +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme new file mode 100644 index 00000000000..e54d01f67a4 --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/rust.dbscheme @@ -0,0 +1,3624 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- 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 +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string 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 +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @adt +| @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties new file mode 100644 index 00000000000..e73d8c313cc --- /dev/null +++ b/rust/downgrades/c467bf63916002287b7bde8ce8b094c57579bd81/upgrade.properties @@ -0,0 +1,29 @@ +description: Renamed the `@type_item` union type to `@adt` and updated its relations +compatibility: full + +type_item_derive_macro_expansions.rel: delete +type_item_attrs.rel: delete +type_item_generic_param_lists.rel: delete +type_item_names.rel: delete +type_item_visibilities.rel: delete +type_item_where_clauses.rel: delete + +adt_derive_macro_expansions.rel: reorder type_item_derive_macro_expansions.rel (@type_item id, int index, @macro_items items) id index items + +enum_attrs.rel: run downgrade.ql new_enum_attrs +enum_generic_param_lists.rel: run downgrade.ql new_enum_generic_param_lists +enum_names.rel: run downgrade.ql new_enum_names +enum_visibilities.rel: run downgrade.ql new_enum_visibilities +enum_where_clauses.rel: run downgrade.ql new_enum_where_clauses + +struct_attrs.rel: run downgrade.ql new_struct_attrs +struct_generic_param_lists.rel: run downgrade.ql new_struct_generic_param_lists +struct_names.rel: run downgrade.ql new_struct_names +struct_visibilities.rel: run downgrade.ql new_struct_visibilities +struct_where_clauses.rel: run downgrade.ql new_struct_where_clauses + +union_attrs.rel: run downgrade.ql new_union_attrs +union_generic_param_lists.rel: run downgrade.ql new_union_generic_param_lists +union_names.rel: run downgrade.ql new_union_names +union_visibilities.rel: run downgrade.ql new_union_visibilities +union_where_clauses.rel: run downgrade.ql new_union_where_clauses \ No newline at end of file diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 578b21fc992..11f99621d16 100644 --- a/rust/extractor/src/generated/.generated.list +++ b/rust/extractor/src/generated/.generated.list @@ -1,2 +1,2 @@ mod.rs 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 4bcb9def847469aae9d8649461546b7c21ec97cf6e63d3cf394e339915ce65d7 -top.rs b829c8ab9ec5ff07b997b9ee0b2c333d63e24eddcf7c5fc2b95a9a7f17a84a69 b829c8ab9ec5ff07b997b9ee0b2c333d63e24eddcf7c5fc2b95a9a7f17a84a69 +top.rs 92ef55101899570ddcb197b872a5b6a38aed874bb8f0ad604af27b2fec00eba5 92ef55101899570ddcb197b872a5b6a38aed874bb8f0ad604af27b2fec00eba5 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 510f6579d40..2365084bb82 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -9006,82 +9006,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct Adt { - _unused: () -} - -impl Adt { - pub fn emit_derive_macro_expansion(id: trap::Label, i: usize, value: trap::Label, out: &mut trap::Writer) { - out.add_tuple("adt_derive_macro_expansions", vec![id.into(), i.into(), value.into()]); - } - - pub fn emit_derive_macro_expansions(id: trap::Label, values: impl IntoIterator>, out: &mut trap::Writer) { - values - .into_iter() - .enumerate() - .for_each(|(i, value)| Self::emit_derive_macro_expansion(id, i, value, out)); - } -} - -impl trap::TrapClass for Adt { - fn class_name() -> &'static str { "Adt" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Item - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Stmt - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of AstNode - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Locatable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Adt is a subclass of Addressable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct AsmExpr { pub id: trap::TrapId, @@ -10305,6 +10229,82 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct TypeItem { + _unused: () +} + +impl TypeItem { + pub fn emit_derive_macro_expansion(id: trap::Label, i: usize, value: trap::Label, out: &mut trap::Writer) { + out.add_tuple("type_item_derive_macro_expansions", vec![id.into(), i.into(), value.into()]); + } + + pub fn emit_derive_macro_expansions(id: trap::Label, values: impl IntoIterator>, out: &mut trap::Writer) { + values + .into_iter() + .enumerate() + .for_each(|(i, value)| Self::emit_derive_macro_expansion(id, i, value, out)); + } +} + +impl trap::TrapClass for TypeItem { + fn class_name() -> &'static str { "TypeItem" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Item + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Stmt + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of AstNode + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Locatable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Element + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme TypeItem is a subclass of Addressable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct Use { pub id: trap::TrapId, @@ -10521,9 +10521,9 @@ pub struct Enum { pub attrs: Vec>, pub generic_param_list: Option>, pub name: Option>, - pub variant_list: Option>, pub visibility: Option>, pub where_clause: Option>, + pub variant_list: Option>, } impl trap::TrapEntry for Enum { @@ -10534,23 +10534,23 @@ impl trap::TrapEntry for Enum { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("enums", vec![id.into()]); for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("enum_attrs", vec![id.into(), i.into(), v.into()]); + out.add_tuple("type_item_attrs", vec![id.into(), i.into(), v.into()]); } if let Some(v) = self.generic_param_list { - out.add_tuple("enum_generic_param_lists", vec![id.into(), v.into()]); + out.add_tuple("type_item_generic_param_lists", vec![id.into(), v.into()]); } if let Some(v) = self.name { - out.add_tuple("enum_names", vec![id.into(), v.into()]); + out.add_tuple("type_item_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("type_item_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("type_item_where_clauses", vec![id.into(), v.into()]); } if let Some(v) = self.variant_list { out.add_tuple("enum_variant_lists", vec![id.into(), v.into()]); } - if let Some(v) = self.visibility { - out.add_tuple("enum_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("enum_where_clauses", vec![id.into(), v.into()]); - } } } @@ -10558,9 +10558,9 @@ impl trap::TrapClass for Enum { fn class_name() -> &'static str { "Enum" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Enum is a subclass of Adt + // SAFETY: this is safe because in the dbscheme Enum is a subclass of TypeItem unsafe { Self::from_untyped(value.as_untyped()) } @@ -11190,11 +11190,11 @@ impl From> for trap::Label { pub struct Struct { pub id: trap::TrapId, pub attrs: Vec>, - pub field_list: Option>, pub generic_param_list: Option>, pub name: Option>, pub visibility: Option>, pub where_clause: Option>, + pub field_list: Option>, } impl trap::TrapEntry for Struct { @@ -11205,23 +11205,23 @@ impl trap::TrapEntry for Struct { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("structs", vec![id.into()]); for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("struct_attrs", vec![id.into(), i.into(), v.into()]); + out.add_tuple("type_item_attrs", vec![id.into(), i.into(), v.into()]); + } + if let Some(v) = self.generic_param_list { + out.add_tuple("type_item_generic_param_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.name { + out.add_tuple("type_item_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("type_item_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("type_item_where_clauses", vec![id.into(), v.into()]); } if let Some(v) = self.field_list { out.add_tuple("struct_field_lists_", vec![id.into(), v.into()]); } - if let Some(v) = self.generic_param_list { - out.add_tuple("struct_generic_param_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.name { - out.add_tuple("struct_names", vec![id.into(), v.into()]); - } - if let Some(v) = self.visibility { - out.add_tuple("struct_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("struct_where_clauses", vec![id.into(), v.into()]); - } } } @@ -11229,9 +11229,9 @@ impl trap::TrapClass for Struct { fn class_name() -> &'static str { "Struct" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Struct is a subclass of Adt + // SAFETY: this is safe because in the dbscheme Struct is a subclass of TypeItem unsafe { Self::from_untyped(value.as_untyped()) } @@ -11421,9 +11421,9 @@ pub struct Union { pub attrs: Vec>, pub generic_param_list: Option>, pub name: Option>, - pub struct_field_list: Option>, pub visibility: Option>, pub where_clause: Option>, + pub struct_field_list: Option>, } impl trap::TrapEntry for Union { @@ -11434,23 +11434,23 @@ impl trap::TrapEntry for Union { fn emit(self, id: trap::Label, out: &mut trap::Writer) { out.add_tuple("unions", vec![id.into()]); for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("union_attrs", vec![id.into(), i.into(), v.into()]); + out.add_tuple("type_item_attrs", vec![id.into(), i.into(), v.into()]); } if let Some(v) = self.generic_param_list { - out.add_tuple("union_generic_param_lists", vec![id.into(), v.into()]); + out.add_tuple("type_item_generic_param_lists", vec![id.into(), v.into()]); } if let Some(v) = self.name { - out.add_tuple("union_names", vec![id.into(), v.into()]); + out.add_tuple("type_item_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("type_item_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("type_item_where_clauses", vec![id.into(), v.into()]); } if let Some(v) = self.struct_field_list { out.add_tuple("union_struct_field_lists", vec![id.into(), v.into()]); } - if let Some(v) = self.visibility { - out.add_tuple("union_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("union_where_clauses", vec![id.into(), v.into()]); - } } } @@ -11458,9 +11458,9 @@ impl trap::TrapClass for Union { fn class_name() -> &'static str { "Union" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Union is a subclass of Adt + // SAFETY: this is safe because in the dbscheme Union is a subclass of TypeItem unsafe { Self::from_untyped(value.as_untyped()) } diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index ee26da665b2..a3a0b3c9133 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -674,7 +674,7 @@ impl<'a> Translator<'a> { pub(crate) fn emit_derive_expansion( &mut self, node: &(impl Into + Clone), - label: impl Into> + Copy, + label: impl Into> + Copy, ) { let Some(semantics) = self.semantics else { return; @@ -686,7 +686,7 @@ impl<'a> Translator<'a> { .flatten() .filter_map(|expanded| self.process_item_macro_expansion(&node, expanded)) .collect::>(); - generated::Adt::emit_derive_macro_expansions( + generated::TypeItem::emit_derive_macro_expansions( label.into(), expansions, &mut self.trap.writer, diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 7def99275cf..de0cdb6224f 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,7 +1,6 @@ lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 1eac5a95247dec5cf51a453788b5bdebcf612590014b1e28f6b6f7e841c96a20 d4d8c9664ca406c3fd14d96a488eea97c42401e2791f41d7248ee5d3f299805c lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be -lib/codeql/rust/elements/Adt.qll c2afed4ac2e17039ccd98f74ea22111f4d765c4e232c50ccd3128da0d26da837 1380bde2eb667c6ec2ef5f8710aa24e926851c9e321ebc72ba514fa92c369dc3 lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9 lib/codeql/rust/elements/ArrayExpr.qll e4e7cff3518c50ec908271906dd46c1fbe9098faa1e8cd06a27f0a6e8d165ed1 fe02a4f4197f57ecd1e8e82d6c9384148ec29d8b106d7f696795b2f325e4a71b lib/codeql/rust/elements/ArrayListExpr.qll 451aedcecb479c385ff497588c7a07fda304fd5b873270223a4f2c804e96b245 a8cb008f6f732215623b5626c84b37b651ca01ccafb2cf4c835df35d5140c6ad @@ -45,7 +44,7 @@ lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95 lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072 lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 -lib/codeql/rust/elements/Enum.qll 55d5a4a775f07d9c1d5183af76f9d8de1d700bfe1dea427cc7ff3083f39e13de f00a585596f1d0ab34e6f2b7cdaba6d4a89005820478f810e8685478cf88100e +lib/codeql/rust/elements/Enum.qll 13c1a3bddfff6c9cc644902652883aefc7721bc94bd8084a1a49acc156996d12 17a898434329437479de4fef27ce11f5996b1953168066bd6d51f93594cc79d1 lib/codeql/rust/elements/Expr.qll e5d65e805ccf440d64d331e55df4c4144ab8c8f63f367382494714087659ffe8 2bbc1e5d3a65f413ec33d9822fa451fbdbe32349158db58cc0bfcfafb0e21bda lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3 lib/codeql/rust/elements/ExternBlock.qll 96c70d0761ec385fe17aa7228e15fd1711949d5abba5877a1c2f4c180d202125 38ad458868a368d437b2dda44307d788a85c887f45ea76c99adbfc9a53f14d81 @@ -144,7 +143,7 @@ lib/codeql/rust/elements/SourceFile.qll 0b6a3e58767c07602b19975009a2ad53ecf1fd72 lib/codeql/rust/elements/Static.qll 9dca6d4fb80fb4ead49a3de89bec2b02bae6f96fbc2601dde35a2aa69a9bfdb0 70f67bc75d7799dab04ea7a7fd13286bb76bbe514be16d23149c59dfb31fd0c9 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/StmtList.qll 8bad277dfd88735195b8fd43bb1395cb2393c488d89304d6a6e6d8ec3eb24b73 cd1d483aecb8bb1876b8153a872f680febc2ef6c315d661c85ec1b2fa07e4fc0 -lib/codeql/rust/elements/Struct.qll 297d3ea732fc7fbb8b8fb5479c1873ce84705146853ff752c84a6f70af12b923 3df0e5fd50a910a0b5611c3a860a1d7c318f6925c3a0727006d91840caf04812 +lib/codeql/rust/elements/Struct.qll e60a859c0112b7a7ce4a4752e936e0d58f413ceb895db25d77ece2fcc9d8881c 8bf69f80bb9ef54644d9540b8be7d331f73ba362817508489ff91619718bee6b lib/codeql/rust/elements/StructExpr.qll 84f384ef74c723796e514186037a91dd9666556f62c717f133ce22e9dda4425f 176497835252cfdfe110e58ebde9fbde553d03e44e07d3e4d8041e835dbf31b9 lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d @@ -168,12 +167,13 @@ lib/codeql/rust/elements/TypeAlias.qll b59f24488f0d7de8d4046a9e0ca1e1f54d1d5c11e lib/codeql/rust/elements/TypeArg.qll e91dbb399d2ab7cf7af9dd5f743a551d0bf91dba3cfb76cea9e2d42ada0f9f2e c67d64e20e35a9bba5092651e0f82c75ba53b8c165e823bc81d67975107ae375 lib/codeql/rust/elements/TypeBound.qll 33583aed81734348c5097851cde3568668f259c000ccde901c75a3f2eef30237 3c9e541d47c5cfbcb0b1c5806f5d9abd7f51382d1efc1328742439e11285ab32 lib/codeql/rust/elements/TypeBoundList.qll 61a861e89b3de23801c723531cd3331a61214817a230aaae74d91cb60f0e096f d54e3d830bb550c5ba082ccd09bc0dc4e6e44e8d11066a7afba5a7172aa687a8 +lib/codeql/rust/elements/TypeItem.qll 5676a801adccd2685c6beff4e2587b6da595ecaa9befb88dc29428eb53988a86 3bfdeb9d0cd4f79a9eb85829e9572bd1e4d0971e67cd3952ae5b811a955b26b5 lib/codeql/rust/elements/TypeParam.qll 0787c1cc0c121e5b46f7d8e25153fd1b181bd3432eb040cf3b4ae3ed9ac2f28c 50092950f52a4e3bfd961dff4ffd8a719ef66ca1a0914bd33e26fed538321999 lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c388526068ddacbd67488c892 11a01e42dab9183bac14de1ca49131788ede99e75b0ef759efcbc7cf08524184 lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74 lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b -lib/codeql/rust/elements/Union.qll 13f7f62e98b117d18e79db5f6e6535447bc069ebb08f7cdb390b012678b7e085 bd8c37bc0ff09926753bc250e1848ed25923f224829d0136afc27b749eaddd1f +lib/codeql/rust/elements/Union.qll e23ca528f8573e77dfa7eca71457e2022c92f22292ce84d021d304e52820ee66 eed20ac3797faaa248bc47ef81fa79a5d5c372b4c6289a075d041a84dd8bd6f4 lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArgs.qll 841913cfbb84de14aab1820a5433eae978bbadbb8e6d413b8ba70780c7328335 c9ec9d086cff91d15c3aea64f1080b22b41cdaf64e3c8b192aaaec17604a5d10 @@ -190,7 +190,6 @@ lib/codeql/rust/elements/YeetExpr.qll 4172bf70de31cab17639da6eed4a12a7afcefd7aa9 lib/codeql/rust/elements/YieldExpr.qll de2dc096a077f6c57bba9d1c2b2dcdbecce501333753b866d77c3ffbe06aa516 1f3e8949689c09ed356ff4777394fe39f2ed2b1e6c381fd391790da4f5d5c76a lib/codeql/rust/elements/internal/AbiConstructor.qll 4484538db49d7c1d31c139f0f21879fceb48d00416e24499a1d4b1337b4141ac 460818e397f2a1a8f2e5466d9551698b0e569d4640fcb87de6c4268a519b3da1 lib/codeql/rust/elements/internal/AbiImpl.qll 28a2b6bdb38fd626e5d7d1ed29b839b95976c3a03717d840669eb17c4d6f0c7a 8e83877855abe760f3be8f45c2cf91c1f6e810ec0301313910b8104b2474d9cf -lib/codeql/rust/elements/internal/AdtImpl.qll 2dc727a14a0fc775512d35e224eab7955884ec143dbd7dbf4cada9a1f5516df4 f3991cea544c5537b0a810492979a317b47685e1c0e58b948df2a957c7a18fdc lib/codeql/rust/elements/internal/ArgListConstructor.qll a73685c8792ae23a2d628e7357658efb3f6e34006ff6e9661863ef116ec0b015 0bee572a046e8dfc031b1216d729843991519d94ae66280f5e795d20aea07a22 lib/codeql/rust/elements/internal/ArgListImpl.qll 0903b2ca31b3e5439f631582d12f17d77721d63fdb54dc41372d19b742881ce4 2c71c153ccca4b4988e6a25c37e58dc8ecb5a7483273afff563a8542f33e7949 lib/codeql/rust/elements/internal/ArrayExprInternal.qll 07a219b3d3fba3ff8b18e77686b2f58ab01acd99e0f5d5cad5d91af937e228f5 7528fc0e2064c481f0d6cbff3835950a044e429a2cd00c4d8442d2e132560d37 @@ -415,6 +414,7 @@ lib/codeql/rust/elements/internal/TypeArgConstructor.qll 51d621e170fdf5f91497f8c lib/codeql/rust/elements/internal/TypeArgImpl.qll 77886af8b2c045463c4c34d781c8f618eec5f5143098548047730f73c7e4a34a 6be6c519b71f9196e0559958e85efe8a78fbce7a90ca2401d7c402e46bc865c9 lib/codeql/rust/elements/internal/TypeBoundConstructor.qll ba99616e65cf2811187016ff23e5b0005cfd0f1123622e908ff8b560aaa5847f fde78432b55b31cf68a3acb7093256217df37539f942c4441d1b1e7bf9271d89 lib/codeql/rust/elements/internal/TypeBoundListConstructor.qll 4b634b3a4ca8909ce8c0d172d9258168c5271435474089902456c2e3e47ae1c5 3af74623ced55b3263c096810a685517d36b75229431b81f3bb8101294940025 +lib/codeql/rust/elements/internal/TypeItemImpl.qll e439593cfbf8fb647b69151b7a0ef2b60b7dfa4603d1a0d911b0f924997acd0c 72caab93da71a88df1c0890ae70e866dc607ce61b177243ee60afa555881c72b lib/codeql/rust/elements/internal/TypeParamConstructor.qll a6e57cccd6b54fa68742d7b8ce70678a79ac133ea8c1bfa89d60b5f74ad07e05 0e5f45d250d736aaf40387be22e55288543bdb55bbb20ecb43f2f056e8be8b09 lib/codeql/rust/elements/internal/TypeReprImpl.qll 504b137313407be57c93fe0acee31716a02f91e23ce417e7c67bae2ae9937564 28fa8b680d5cd782c5c5fb048a9deb9b9debd196e3bc7df1129843e61eb342ea lib/codeql/rust/elements/internal/UnderscoreExprConstructor.qll 8dc27831adb49c1a47b9f8997d6065e82b4e48e41e3c35bd8d35255cea459905 6c5a5272d37f83f1c1b17475f8adb7d867e95025d201320e20a32dab1f69f7bf @@ -445,7 +445,6 @@ lib/codeql/rust/elements/internal/YieldExprConstructor.qll 8cbfa6405acb151ee31cc lib/codeql/rust/elements/internal/YieldExprImpl.qll af184649a348ddd0be16dee9daae307240bf123ace09243950342e9d71ededd9 17df90f67dd51623e8a5715b344ccd8740c8fc415af092469f801b99caacb70d lib/codeql/rust/elements/internal/generated/Abi.qll f5a22afe5596c261b4409395056ce3227b25d67602d51d0b72734d870f614df3 06d1c242ccd31f1cc90212823077e1a7a9e93cd3771a14ebe2f0659c979f3dd1 lib/codeql/rust/elements/internal/generated/Addressable.qll 624c380d385af6563885417d1e8ecd5d9b7abf1435c0ab79a1b9a405387874a3 e2755dc2155d6f2bc0e2d54006da0e62ee359440592db9d6a8b73202ef28e64f -lib/codeql/rust/elements/internal/generated/Adt.qll 155f4025a26c3d2d5d3c42dfce9274a10f0862ea0574843c5d276179de421569 17138b271eea81d3ee2697c82cccfd7af752cd18cd925dd5fa20d7fce0e2432f lib/codeql/rust/elements/internal/generated/ArgList.qll e41f48258082876a8ceac9107209d94fdd00a62d2e4c632987a01a8394c4aff6 bf1982d14f8cd55fa0c3da2c6aab56fc73b15a3572ffc72d9a94f2c860f8f3b7 lib/codeql/rust/elements/internal/generated/ArrayExpr.qll 73806a0de8168b38a9436fa6b8c6d68c92eeab3d64a1ae7edfff82f871929992 7ad998cdd8f4fed226473517ad7a5765cb35608033047aad53bf8aa3969fd03b lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll 67a7b0fae04b11cf771727ff39a123fb2d5ce6e2d650d32478fcb33a26ed5688 15833405fa85f6abe0e5146dac283cb5a142a07f08300ccc15a1dae30ed88942 @@ -490,7 +489,7 @@ lib/codeql/rust/elements/internal/generated/ContinueExpr.qll e2010feb14fb6edeb83 lib/codeql/rust/elements/internal/generated/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35 lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll b2e0e728b6708923b862d9d8d6104d13f572da17e393ec1485b8465e4bfdc206 4a87ea9669c55c4905ce4e781b680f674989591b0cb56af1e9fa1058c13300b3 lib/codeql/rust/elements/internal/generated/Element.qll d56d22c060fa929464f837b1e16475a4a2a2e42d68235a014f7369bcb48431db 0e48426ca72179f675ac29aa49bbaadb8b1d27b08ad5cbc72ec5a005c291848e -lib/codeql/rust/elements/internal/generated/Enum.qll 477eaa102c1268f0fa7603ecd88f1b83db1388c17c25e3719d4113ea980256f7 2d60db61ba4a385218f0a01e366e04ba1e7dad386b7e6a027c31f32fb730cca2 +lib/codeql/rust/elements/internal/generated/Enum.qll 3ed69005ab7cf68745a67cc9891bd68a83f6ab927febf077de9e4092cb373b0b 604fd03d1c46884b3c93e5bff3951ec41593320e1f7382c1a7143a64063827bc lib/codeql/rust/elements/internal/generated/Expr.qll 5fa34f2ed21829a1509417440dae42d416234ff43433002974328e7aabb8f30f 46f3972c7413b7db28a3ea8acb5a50a74b6dd9b658e8725f6953a8829ac912f8 lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b lib/codeql/rust/elements/internal/generated/ExternBlock.qll e7faac92297a53ac6e0420eec36255a54f360eeb962bf663a00da709407832dd 5ff32c54ec7097d43cc3311492090b9b90f411eead3bc849f258858f29405e81 @@ -563,7 +562,7 @@ lib/codeql/rust/elements/internal/generated/ParamList.qll eaa0cd4402d3665013d47e lib/codeql/rust/elements/internal/generated/ParenExpr.qll 812d2ff65079277f39f15c084657a955a960a7c1c0e96dd60472a58d56b945eb eb8c607f43e1fcbb41f37a10de203a1db806690e10ff4f04d48ed874189cb0eb lib/codeql/rust/elements/internal/generated/ParenPat.qll 24f9dc7fce75827d6fddb856cd48f80168143151b27295c0bab6db5a06567a09 ebadbc6f5498e9ed754b39893ce0763840409a0721036a25b56e1ead7dcc09aa lib/codeql/rust/elements/internal/generated/ParenTypeRepr.qll 03f5c5b96a37adeb845352d7fcea3e098da9050e534972d14ac0f70d60a2d776 ed3d6e5d02086523087adebce4e89e35461eb95f2a66d1d4100fe23fc691b126 -lib/codeql/rust/elements/internal/generated/ParentChild.qll 8a6e4335bcf6f7d72f5ed6ffba5448ae88b00323fe7dac6f406c8746c03ef2dc 867a0fb166b53d7a8218a02d671f117ba7ea4e67cb16abeea6e746dc5823b85e +lib/codeql/rust/elements/internal/generated/ParentChild.qll 2a7dd6ec90e4d557b36704a04bb9eb4191469126f960c52827e12c90e51c5343 37781e023a93982be30c9d80aee7c6d87d52cc934705db66f838604563391f95 lib/codeql/rust/elements/internal/generated/ParenthesizedArgList.qll d901fdc8142a5b8847cc98fc2afcfd16428b8ace4fbffb457e761b5fd3901a77 5dbb0aea5a13f937da666ccb042494af8f11e776ade1459d16b70a4dd193f9fb lib/codeql/rust/elements/internal/generated/Pat.qll 3605ac062be2f294ee73336e9669027b8b655f4ad55660e1eab35266275154ee 7f9400db2884d336dd1d21df2a8093759c2a110be9bf6482ce8e80ae0fd74ed4 lib/codeql/rust/elements/internal/generated/Path.qll 9b12afb46fc5a9ad3a811b05472621bbecccb900c47504feb7f29d96b28421ca bcacbffc36fb3e0c9b26523b5963af0ffa9fd6b19f00a2a31bdb2316071546bd @@ -578,7 +577,7 @@ lib/codeql/rust/elements/internal/generated/PtrTypeRepr.qll 8d0ea4f6c7f8203340bf lib/codeql/rust/elements/internal/generated/PureSynthConstructors.qll e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f e5b8e69519012bbaae29dcb82d53f7f7ecce368c0358ec27ef6180b228a0057f lib/codeql/rust/elements/internal/generated/RangeExpr.qll 23cca03bf43535f33b22a38894f70d669787be4e4f5b8fe5c8f7b964d30e9027 18624cef6c6b679eeace2a98737e472432e0ead354cca02192b4d45330f047c9 lib/codeql/rust/elements/internal/generated/RangePat.qll 80826a6a6868a803aa2372e31c52a03e1811a3f1f2abdb469f91ca0bfdd9ecb6 34ee1e208c1690cba505dff2c588837c0cd91e185e2a87d1fe673191962276a9 -lib/codeql/rust/elements/internal/generated/Raw.qll f207067167f8597ddf6de483372fc9e281d1661d3fc0a5da0d6d6bd7e32aa9c7 1c27c65c3ab4d07553bbd269c6737576feca3f5c29c8b02f81a0d65c209d4621 +lib/codeql/rust/elements/internal/generated/Raw.qll 22bb3aa871d1dcac60bfa46393da911f95467065e52bb78981d17469c7854c93 3ccc518319d79f3c8d9e9901a5665ab4c889253781edf76fcbc3de64dff91069 lib/codeql/rust/elements/internal/generated/RefExpr.qll 7d995884e3dc1c25fc719f5d7253179344d63650e217e9ff6530285fe7a57f64 f2c3c12551deea4964b66553fb9b6423ee16fec53bd63db4796191aa60dc6c66 lib/codeql/rust/elements/internal/generated/RefPat.qll 456ede39837463ee22a630ec7ab6c8630d3664a8ea206fcc6e4f199e92fa564c 5622062765f32930465ba6b170e986706f159f6070f48adee3c20e24e8df4e05 lib/codeql/rust/elements/internal/generated/RefTypeRepr.qll 5b0663a6d234572fb3e467e276d019415caa95ef006438cc59b7af4e1783161e 0e27c8a8f0e323c0e4d6db01fca821bf07c0864d293cdf96fa891b10820c1e4b @@ -594,7 +593,7 @@ lib/codeql/rust/elements/internal/generated/SourceFile.qll 4bc95c88b49868d1da1a8 lib/codeql/rust/elements/internal/generated/Static.qll 1a6c87d3c5602e3d02268ebe2463a4ac64614ad25e8966a9bdb9c0ef58991365 cc1fe16d70cdce41a12e41a8f80cc38bdd7efa49c1544e35342fcf3cd26b8219 lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b lib/codeql/rust/elements/internal/generated/StmtList.qll 834b87cd93f0c5b41736fb52a6c25fd0e3bdce41d5a64cb3d0810c54e90507f4 ec42f2dfa322044ceaaf90d278f0e7e751d63710facbaf3f5ee69ca3c64ecd06 -lib/codeql/rust/elements/internal/generated/Struct.qll 999da1b46e40d6e03fd2338fea02429462877c329c5d1338618cbd886a81567e daa7ff7bd32c554462e0a1502d8319cb5e734e056d0564e06596e416e2b88e9d +lib/codeql/rust/elements/internal/generated/Struct.qll 56775b98f793c108bd0eb8f35dbbc4983c170138e92c7378c24f45d2e612ca39 7bd83f2686f2f7a6b55b82156028c1951fde4c3ac9fc0248b1bb28f35b949fd4 lib/codeql/rust/elements/internal/generated/StructExpr.qll e77702890561102af38f52d836729e82569c964f8d4c7e680b27992c1ff0f141 23dc51f68107ab0e5c9dd88a6bcc85bb66e8e0f4064cb4d416f50f2ba5db698c lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 @@ -603,7 +602,7 @@ lib/codeql/rust/elements/internal/generated/StructFieldList.qll 5da528a51a6a5db9 lib/codeql/rust/elements/internal/generated/StructPat.qll c76fa005c2fd0448a8803233e1e8818c4123301eb66ac5cf69d0b9eaafc61e98 6e0dffccdce24bca20e87d5ba0f0995c9a1ae8983283e71e7dbfcf6fffc67a58 lib/codeql/rust/elements/internal/generated/StructPatField.qll 5b5c7302dbc4a902ca8e69ff31875c867e295a16a626ba3cef29cd0aa248f179 4e192a0df79947f5cb0d47fdbbba7986137a6a40a1be92ae119873e2fad67edf lib/codeql/rust/elements/internal/generated/StructPatFieldList.qll 1a95a1bd9f64fb18e9571657cf2d02a8b13c747048a1f0f74baf31b91f0392ad fc274e414ff4ed54386046505920de92755ad0b4d39a7523cdffa4830bd53b37 -lib/codeql/rust/elements/internal/generated/Synth.qll 61147c264e863dc5234b391ad2b7a01e0a2fe99e18ea237ba06e31340fd0a50a 6d33624a9b571d05aba1e9459a211f75b762e72fa716259abcd994f5098e15a6 +lib/codeql/rust/elements/internal/generated/Synth.qll 00f19e9d0a03b9d8e42caceda06da69d67280be16f67f3459f0adec8f9f8cacd ebcc049fe946540277893bf095787c061cd119c9d4eb708cec9df93257780e8d lib/codeql/rust/elements/internal/generated/SynthConstructors.qll f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a f41abfc73415b7accb38da7c107faebfe6843c270ad54e0e54a96e930dfe479a lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf @@ -620,12 +619,13 @@ lib/codeql/rust/elements/internal/generated/TypeAlias.qll 0d0c97d9e9213b8f0390b3 lib/codeql/rust/elements/internal/generated/TypeArg.qll 80245e4b52bef30e5033d4c765c72531324385deea1435dc623290271ff05b1d 097926e918dcd897ea1609010c5490dbf45d4d8f4cffb9166bcadf316a2f1558 lib/codeql/rust/elements/internal/generated/TypeBound.qll ed27681b76b8f3ad790daad4a08f3bc243452821246bcb240b1d925bc1c362a3 8fdc0caf91f1894d8711d68547185eb029446898b66f60fc0d10ef862cd6292e lib/codeql/rust/elements/internal/generated/TypeBoundList.qll c5d43dc27075a0d5370ba4bc56b4e247357af5d2989625deff284e7846a3a48b c33c87d080e6eb6df01e98b8b0031d780472fcaf3a1ed156a038669c0e05bf0a +lib/codeql/rust/elements/internal/generated/TypeItem.qll 940b197a06b11621db980ae8ff8c0c6684cebeff62987ad8267f3838aa768d0a ab0e3b6e23acd1970ea4e2a32bef3cced27072ec9c5d16428626ec2632b33d14 lib/codeql/rust/elements/internal/generated/TypeParam.qll 81a8d39f1e227de031187534e5d8e2c34f42ad3433061d686cadfbdd0df54285 893795d62b5b89997574e9057701d308bea2c4dca6053042c5308c512137e697 lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31a6453a2a60747420f8bc2e689d5163cab4fec71bb eb80e3947649e511e7f3555ffc1fd87199e7a32624449ca80ffad996cdf9e2f3 lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7 lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21 -lib/codeql/rust/elements/internal/generated/Union.qll 456504e6a32991ba17ca65f97636f4dfb86c758c7f8509aaca1b0d0432231dfe c96068edfec3e0755a7726426a10996455ee9f0f2d678af258719f1943a3063e +lib/codeql/rust/elements/internal/generated/Union.qll 4df8fc632f7bcc0cbd564cd1c148c1a2438f26e6a83cd6470e15870120f677fe c74dea0a4ddfd581b9208d7907ea134219cafd217294315acf5c595de38a61f3 lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393 lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll cedde7ccf689e3a2a246113be94544c206c56fb1c01b83b074e1f6edd3acfced f022ea4c653d1b5f311917efde8e59be27394ce7f6abf2561bb1e42f93f74adf @@ -640,7 +640,7 @@ lib/codeql/rust/elements/internal/generated/WhileExpr.qll 0353aab87c49569e1fbf58 lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae017a329352a5b27a6b9e73dd5521d627f680e810c6c59e 4b913b548ba27ff3c82fcd32cf996ff329cb57d176d3bebd0fcef394486ea499 lib/codeql/rust/elements/internal/generated/YeetExpr.qll cac328200872a35337b4bcb15c851afb4743f82c080f9738d295571eb01d7392 94af734eea08129b587fed849b643e7572800e8330c0b57d727d41abda47930b lib/codeql/rust/elements/internal/generated/YieldExpr.qll 37e5f0c1e373a22bbc53d8b7f2c0e1f476e5be5080b8437c5e964f4e83fad79a 4a9a68643401637bf48e5c2b2f74a6bf0ddcb4ff76f6bffb61d436b685621e85 -lib/codeql/rust/elements.qll 5cc722db81259ee5d5b9cbed1a4d2795060ad996c80fd7121e7ce43dc392b62f 5cc722db81259ee5d5b9cbed1a4d2795060ad996c80fd7121e7ce43dc392b62f +lib/codeql/rust/elements.qll 47adb2b43274ce791299d1e94299e560f392f75d2cc4d4ace02e29f31a7db4af 47adb2b43274ce791299d1e94299e560f392f75d2cc4d4ace02e29f31a7db4af test/extractor-tests/generated/Abi/Abi.ql 086ed104ab1a7e7fe5c1ed29e03f1719a797c7096c738868bf6ebe872ab8fdaa fe23fe67ab0d9201e1177ea3f844b18ed428e13e3ce77381bf2b6910adfa3a0e test/extractor-tests/generated/ArgList/ArgList.ql da97b5b25418b2aa8cb8df793f48870c89fa00759cdade8ddba60d7f1f4bbc01 acfd5d2caf67282ad2d57b961068472100482d0f770a52a3c00214c647d18c75 test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql 42b365276aa43e2cad588338463542d3ce1dd0db3a428621554584b07a1431d5 08a66a8b69af35ee3bc64c35c453a19a6c9881cc6cc7e65275d1fff056121270 @@ -677,7 +677,7 @@ test/extractor-tests/generated/ConstParam/ConstParam.ql 6facb2402e1cbf23d836f619 test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql 58b5046a4da06a4cd2d942720603313126888b2249b218bef6f7c44ca469ccfa eeb84a04deb4c4496b7f9b38798cc7fdc179a486c8beaa0b33bf87e7f9482b1a test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql ff54195d2e09424faaac4e145a40208bf0e57acc57dfa8247b3751862a317c4b 583d5b98aa31a9af6ad73df000ca529f57f67aa6daaa50ca5673a56eb57bf507 -test/extractor-tests/generated/Enum/Enum.ql 64ed7f25aaf5eff67687cd3aa2690017fb6f9651c959aed7b655d486be0e0c5b 1df131d8e12c4594715ed31191e960792c21727b403dce59207c514671e88d62 +test/extractor-tests/generated/Enum/Enum.ql 9a612c818952e867e2665d8c919905d563bb76191f3f522370c7344863589205 c32cf1973082f5d519e3eb04fca0309b3dd9637cf34e58c10a8e34cd9fe36d2d test/extractor-tests/generated/ExprStmt/ExprStmt.ql 7c62a97f7f910ae6e0e9aff7fdd78b369d21257ccab52afe6307ddea2e15dad1 2d32a366c4acbea3136ff1f9f9dadf76b148f82ad1d7170f02efd977d8a07ae9 test/extractor-tests/generated/ExternBlock/ExternBlock.ql b61e37f1c387bc91be127b5425089f9f1d687f4f1708cad334c0bb00dba5bae3 dc03f0f0912b2cfbce74c3bc31d261cdbea740847212ac3472ecf719d8eb71f7 test/extractor-tests/generated/ExternCrate/ExternCrate.ql 55d2d9d32cb5e894cc2ee5242d688aaa8428ba7757cccea67d1c064db6de2514 46a2c57660a42ee6eaa532b0c86f4cc2d3de795c33ee7cadbff650bd0f23206b @@ -761,7 +761,7 @@ test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql a009f2ba47f3b082db test/extractor-tests/generated/SourceFile/SourceFile.ql 19ae5570a88b9e2d82db66685a31b01cc8e0c86c622a4bfaabe8c5b397b27eea 60e2ba5eb82518d6408254fb4ec01277b6c6c0e4316d4f3cdc809da9c32c4a57 test/extractor-tests/generated/Static/Static.ql ec2e5cf081453bbae16216d1250f5d8324be81d1d6ad8744e969934d2ef21b0d 7bde1afbafdc16f9c999e902626c77dc0efe3f1b3d687e9fe1a3e9db6b1f62a9 test/extractor-tests/generated/StmtList/StmtList.ql 4c6b9d5d8fd7535f97d81b968d4f67fc50e10c5d0f980e7c2704bbf5cd07481e ad972adb8d9a7892e6f8a12d96649340441f947afc99e633ea438c4d5c795ce4 -test/extractor-tests/generated/Struct/Struct.ql 846ef41cb4dfbe94f495fd68de26a68609e7b5ab0830d6ee844a67afea3ac591 6799a1246da45ecbf1f1040ffb7d1a5578ab9e236cce3029e6cc17c93b3bf138 +test/extractor-tests/generated/Struct/Struct.ql 57e837e3c665d24870d99492c8874441ce1445b314863ae405cc6f721d2ac14c ddeee05945e91356a1dc66976ef4830230b1c024ace02f974ff42c8193fd3464 test/extractor-tests/generated/StructExpr/StructExpr.ql 3b98205260e750cc7adc42b318deef2854cc3b4f921cbcfffc6d701553af3903 368bccf01db2fa069dca30d9fb0878f8e6a88d4ce58b333b24a18620933e4c91 test/extractor-tests/generated/StructExprField/StructExprField.ql b65375963aa24f0d1dd4c10784e32ab8c337ad431462ea1d081a0e456fbb1362 7f5a49e8df03ed0890b51c2e941d636fbbf70445a53d3af2c0f34a04f26bc6ef test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 01dc3ef66d79836a3d372464f05454015648ab093f9547c5d9c5d55271acb718 83625301c097fa38d4e6021ea28b8adc6338076c8c2aa88a86a22aac412839f6 @@ -787,7 +787,7 @@ test/extractor-tests/generated/TypeBound/TypeBound.ql 41d0a7b6538de12797c5aa4152 test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql 6827529eca62f5e7be87538af6231099f5932f39d8694f7a76369273b93f28ea 539dac4ccda7e51b7ae1a9e05d8a56a98176d9de25d5ed4347ebe2fbea8adeb1 test/extractor-tests/generated/TypeParam/TypeParam.ql c5f8f62f2877c719c3cf069f9d0ca83cebc14f7611c6c2dce86c85114ea2635c 751c630986f35a8d0d32fbeb61ca6ff801c96cd1829dbccc874fbf5f5158e98d test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql a7b7a93104fff28515154cf8e79045d3eea2494b5c46f1caf36639c53b1c64a7 070ee2e1664e3291646ea56681b5c93331f94dcc519deb28622beca3e26e16f3 -test/extractor-tests/generated/Union/Union.ql 71e367ea4b541ee4ae831c69d0dfa2d1ba0c2d3dd9e9aba770dd00fd1f546ef8 61dbc6364a9f486d0de8c27cacbb9d1027282d92f89058e93e2c376588d809f9 +test/extractor-tests/generated/Union/Union.ql 427757ef5aa4e95fde8f5047263cbbbc7e2614f9efabc51c9a5f9ba8d9b68310 d1d8840a4324e5727e1ecf6e696741e902b807b39ec82686b94211803eb2d0ba test/extractor-tests/generated/Use/Use.ql 1f084f3b49c910c6e01d2a81be2443e84c2836a5855b89874965efaf25d17511 d5bf37ba65f4d280312ca798bae22d2735c00cf91ff05ed6321f69b76b4551bc test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql 46ff2cf0fc8b561b21f8dff3230550f2feafbe52a7ea8b28bf183abef94ff241 92646f3bd15a8cf4c23ee9de4d857ac5c147e570ef0eb223423a109b4b79aedf test/extractor-tests/generated/UseTree/UseTree.ql 3c2bc924b54b9af5c95784023d4098924571ba464c5982124acea712c3ce0e93 8d9f963b61a9a8a83efd93438ce8b43d4aa763493338ad9afd2a3dc7a440892d diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 22c7d3a1549..dd6ca829eed 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -3,7 +3,6 @@ /lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll linguist-generated /lib/codeql/rust/elements/Abi.qll linguist-generated /lib/codeql/rust/elements/Addressable.qll linguist-generated -/lib/codeql/rust/elements/Adt.qll linguist-generated /lib/codeql/rust/elements/ArgList.qll linguist-generated /lib/codeql/rust/elements/ArrayExpr.qll linguist-generated /lib/codeql/rust/elements/ArrayListExpr.qll linguist-generated @@ -170,6 +169,7 @@ /lib/codeql/rust/elements/TypeArg.qll linguist-generated /lib/codeql/rust/elements/TypeBound.qll linguist-generated /lib/codeql/rust/elements/TypeBoundList.qll linguist-generated +/lib/codeql/rust/elements/TypeItem.qll linguist-generated /lib/codeql/rust/elements/TypeParam.qll linguist-generated /lib/codeql/rust/elements/TypeRepr.qll linguist-generated /lib/codeql/rust/elements/UnderscoreExpr.qll linguist-generated @@ -192,7 +192,6 @@ /lib/codeql/rust/elements/YieldExpr.qll linguist-generated /lib/codeql/rust/elements/internal/AbiConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/AbiImpl.qll linguist-generated -/lib/codeql/rust/elements/internal/AdtImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArrayExprInternal.qll linguist-generated @@ -417,6 +416,7 @@ /lib/codeql/rust/elements/internal/TypeArgImpl.qll linguist-generated /lib/codeql/rust/elements/internal/TypeBoundConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/TypeBoundListConstructor.qll linguist-generated +/lib/codeql/rust/elements/internal/TypeItemImpl.qll linguist-generated /lib/codeql/rust/elements/internal/TypeParamConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/TypeReprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/UnderscoreExprConstructor.qll linguist-generated @@ -447,7 +447,6 @@ /lib/codeql/rust/elements/internal/YieldExprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Abi.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Addressable.qll linguist-generated -/lib/codeql/rust/elements/internal/generated/Adt.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArgList.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArrayExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll linguist-generated @@ -622,6 +621,7 @@ /lib/codeql/rust/elements/internal/generated/TypeArg.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeBound.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeBoundList.qll linguist-generated +/lib/codeql/rust/elements/internal/generated/TypeItem.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeParam.qll linguist-generated /lib/codeql/rust/elements/internal/generated/TypeRepr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll linguist-generated diff --git a/rust/ql/consistency-queries/PathResolutionConsistency.ql b/rust/ql/consistency-queries/PathResolutionConsistency.ql index 3b2165b712f..bc1f572eedb 100644 --- a/rust/ql/consistency-queries/PathResolutionConsistency.ql +++ b/rust/ql/consistency-queries/PathResolutionConsistency.ql @@ -15,8 +15,8 @@ class SourceLocatable extends Locatable { SourceLocatable() { this.fromSource() } } -query predicate multipleCallTargets(SourceLocatable a) { - PathResolutionConsistency::multipleCallTargets(a, _) +query predicate multipleResolvedTargets(SourceLocatable a) { + PathResolutionConsistency::multipleResolvedTargets(a, _) } query predicate multiplePathResolutions(SourceLocatable a) { diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index b714dc31cb9..e2aeb59f40b 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.2 + +No user-facing changes. + ## 0.2.1 No user-facing changes. diff --git a/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md new file mode 100644 index 00000000000..3e1cabd75f7 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-12-11-read-as-taint.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Reading content of a value now carries taint if the value itself is tainted. For instance, if `s` is tainted then `s.field` is also tainted. This generally improves taint flow. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2025-12-16-axum-models.md b/rust/ql/lib/change-notes/2025-12-16-axum-models.md new file mode 100644 index 00000000000..baa5910d799 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-12-16-axum-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added models for the Axum web application framework. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/2025-12-17-adt-rename.md b/rust/ql/lib/change-notes/2025-12-17-adt-rename.md new file mode 100644 index 00000000000..0b66b4664a1 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-12-17-adt-rename.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Renamed the `Adt` class to `TypeItem` and moved common predicates from `Struct`, `Enum`, and `Union` to `TypeItem`. \ No newline at end of file diff --git a/rust/ql/lib/change-notes/released/0.2.2.md b/rust/ql/lib/change-notes/released/0.2.2.md new file mode 100644 index 00000000000..98e69fd0772 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.2.md @@ -0,0 +1,3 @@ +## 0.2.2 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index df29a726bcc..16a06790aa8 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.1 +lastReleaseVersion: 0.2.2 diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 393095e80d9..fc84c8f0bc6 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -445,7 +445,15 @@ module RustDataFlow implements InputSig { or exists(SummarizedCallable sc, Function staticTarget | staticTarget = getStaticTargetExt(c) and - sc = result.asSummarizedCallable() + sc = result.asSummarizedCallable() and + // 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. + not ( + staticTarget.fromSource() and + sc.applyGeneratedModel() + ) | sc = staticTarget or diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll index 4aef065efdf..582e5861235 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/FlowSummaryImpl.qll @@ -11,6 +11,20 @@ private import codeql.rust.dataflow.FlowSummary private import codeql.rust.dataflow.Ssa private import Content +predicate encodeContentTupleField(TupleFieldContent c, string arg) { + exists(Addressable a, int pos, string prefix | + arg = prefix + "(" + pos + ")" and prefix = a.getCanonicalPath() + | + c.isStructField(a, pos) or c.isVariantField(a, pos) + ) +} + +predicate encodeContentStructField(StructFieldContent c, string arg) { + exists(Addressable a, string field | arg = a.getCanonicalPath() + "::" + field | + c.isStructField(a, field) or c.isVariantField(a, field) + ) +} + module Input implements InputSig { private import codeql.rust.frameworks.stdlib.Stdlib @@ -58,24 +72,11 @@ module Input implements InputSig { exists(Content c | cs = TSingletonContentSet(c) | result = "Field" and ( - exists(Addressable a, int pos, string prefix | - arg = prefix + "(" + pos + ")" and prefix = a.getCanonicalPath() - | - c.(TupleFieldContent).isStructField(a, pos) - or - c.(TupleFieldContent).isVariantField(a, pos) - ) + encodeContentTupleField(c, arg) or - exists(Addressable a, string field | arg = a.getCanonicalPath() + "::" + field | - c.(StructFieldContent).isStructField(a, field) - or - c.(StructFieldContent).isVariantField(a, field) - ) + encodeContentStructField(c, arg) or - exists(int pos | - c = TTuplePositionContent(pos) and - arg = pos.toString() - ) + exists(int pos | c = TTuplePositionContent(pos) and arg = pos.toString()) ) or result = "Reference" and diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index a680f20d5f6..12dec7d5bd0 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -123,12 +123,15 @@ private class SummarizedCallableFromModel extends SummarizedCallable::Range { summaryModel(path, _, _, _, provenance, _) } + private predicate hasManualModel() { summaryModel(path, _, _, _, "manual", _) } + override predicate propagatesFlow( string input, string output, boolean preservesValue, string model ) { - exists(string kind, QlBuiltins::ExtensionId madId | - summaryModel(path, input, output, kind, _, madId) and - model = "MaD:" + madId.toString() + exists(string kind, string provenance, QlBuiltins::ExtensionId madId | + summaryModel(path, input, output, kind, provenance, madId) and + model = "MaD:" + madId.toString() and + (provenance = "manual" or not this.hasManualModel()) | kind = "value" and preservesValue = true diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index cc738d1dc86..f2f6fa1b0d8 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -230,7 +230,7 @@ final class ExprArgumentNode extends ArgumentNode, ExprNode { ExprArgumentNode() { isArgumentForCall(n, call_, pos_) and not TypeInference::implicitDeref(n) and - not TypeInference::implicitBorrow(n) + not TypeInference::implicitBorrow(n, _) } override predicate isArgumentOf(DataFlowCall call, RustDataFlow::ArgumentPosition pos) { @@ -579,7 +579,7 @@ newtype TNode = TypeInference::implicitDeref(n) and borrow = false or - TypeInference::implicitBorrow(n) and + TypeInference::implicitBorrow(n, _) and borrow = true } or TDerefOutNode(DerefExpr de, Boolean isPost) or diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll index 3bb35085484..33d44501cfc 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/TaintTrackingImpl.qll @@ -7,6 +7,27 @@ private import Node as Node private import Content private import FlowSummaryImpl as FlowSummaryImpl private import codeql.rust.internal.CachedStages +private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.Type as Type +private import codeql.rust.frameworks.stdlib.Builtins as Builtins + +/** + * Holds if the field `field` should, by default, be excluded from taint steps + * from the containing type to reads of the field. The models-as-data syntax + * used to denote the field is the same as for `Field[]` access path elements. + */ +extensible predicate excludeFieldTaintStep(string field); + +/** + * Holds if the content `c` corresponds to a field that has explicitly been + * excluded as a taint step. + */ +private predicate excludedTaintStepContent(Content c) { + exists(string arg | excludeFieldTaintStep(arg) | + FlowSummaryImpl::encodeContentStructField(c, arg) or + FlowSummaryImpl::encodeContentTupleField(c, arg) + ) +} module RustTaintTracking implements InputSig { predicate defaultTaintSanitizer(DataFlow::Node node) { none() } @@ -28,11 +49,17 @@ module RustTaintTracking implements InputSig { succ.asExpr() = index ) or - // Although data flow through collections and references is modeled using - // stores/reads, we also allow taint to flow out of a tainted collection - // or reference. - // This is needed in order to support taint-tracking configurations where - // the source is a collection or reference. + // Read steps give rise to taint steps. This has the effect that if `foo` + // is tainted and an operation reads from `foo` (e.g., `foo.bar`) then + // taint is propagated. + exists(Content c | + RustDataFlow::readContentStep(pred, c, succ) and + not excludedTaintStepContent(c) + ) + or + // In addition to the above, for element and reference content we let + // _all_ read steps (including those from flow summaries and those that + // result in small primitive types) give rise to taint steps. exists(SingletonContentSet cs | RustDataFlow::readStep(pred, cs, succ) | cs.getContent() instanceof ElementContent or diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index 9c7d0be306f..1377c543f78 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -6,7 +6,6 @@ import codeql.files.FileSystem import codeql.rust.elements.Abi import codeql.rust.elements.Addressable -import codeql.rust.elements.Adt import codeql.rust.elements.ArgList import codeql.rust.elements.ArrayExpr import codeql.rust.elements.ArrayListExpr @@ -173,6 +172,7 @@ import codeql.rust.elements.TypeAlias import codeql.rust.elements.TypeArg import codeql.rust.elements.TypeBound import codeql.rust.elements.TypeBoundList +import codeql.rust.elements.TypeItem import codeql.rust.elements.TypeParam import codeql.rust.elements.TypeRepr import codeql.rust.elements.UnderscoreExpr diff --git a/rust/ql/lib/codeql/rust/elements/Adt.qll b/rust/ql/lib/codeql/rust/elements/Adt.qll deleted file mode 100644 index c8fa30d743d..00000000000 --- a/rust/ql/lib/codeql/rust/elements/Adt.qll +++ /dev/null @@ -1,13 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the public class `Adt`. - */ - -private import internal.AdtImpl -import codeql.rust.elements.Item -import codeql.rust.elements.MacroItems - -/** - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. - */ -final class Adt = Impl::Adt; diff --git a/rust/ql/lib/codeql/rust/elements/Enum.qll b/rust/ql/lib/codeql/rust/elements/Enum.qll index 9d52b558f53..9bad986cef5 100644 --- a/rust/ql/lib/codeql/rust/elements/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/Enum.qll @@ -4,13 +4,8 @@ */ private import internal.EnumImpl -import codeql.rust.elements.Adt -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name +import codeql.rust.elements.TypeItem import codeql.rust.elements.VariantList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause /** * An enum declaration. diff --git a/rust/ql/lib/codeql/rust/elements/Struct.qll b/rust/ql/lib/codeql/rust/elements/Struct.qll index 7627f866f05..fb9bec418da 100644 --- a/rust/ql/lib/codeql/rust/elements/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/Struct.qll @@ -4,13 +4,8 @@ */ private import internal.StructImpl -import codeql.rust.elements.Adt -import codeql.rust.elements.Attr import codeql.rust.elements.FieldList -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.TypeItem /** * A Struct. For example: diff --git a/rust/ql/lib/codeql/rust/elements/TypeItem.qll b/rust/ql/lib/codeql/rust/elements/TypeItem.qll new file mode 100644 index 00000000000..48d22478df0 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/TypeItem.qll @@ -0,0 +1,18 @@ +// generated by codegen, do not edit +/** + * This module provides the public class `TypeItem`. + */ + +private import internal.TypeItemImpl +import codeql.rust.elements.Attr +import codeql.rust.elements.GenericParamList +import codeql.rust.elements.Item +import codeql.rust.elements.MacroItems +import codeql.rust.elements.Name +import codeql.rust.elements.Visibility +import codeql.rust.elements.WhereClause + +/** + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. + */ +final class TypeItem = Impl::TypeItem; diff --git a/rust/ql/lib/codeql/rust/elements/Union.qll b/rust/ql/lib/codeql/rust/elements/Union.qll index 988a1cf9799..4fc8584c9fe 100644 --- a/rust/ql/lib/codeql/rust/elements/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/Union.qll @@ -4,13 +4,8 @@ */ private import internal.UnionImpl -import codeql.rust.elements.Adt -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.TypeItem /** * A union declaration. diff --git a/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll index 158a5ee9670..df586df6424 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/ElementImpl.qll @@ -46,7 +46,7 @@ module Impl { private predicate isMacroExpansion(AstNode macro, AstNode expansion) { expansion = macro.(MacroCall).getMacroCallExpansion() or - expansion = macro.(Adt).getDeriveMacroExpansion(_) + expansion = macro.(TypeItem).getDeriveMacroExpansion(_) or expansion = macro.(Item).getAttributeMacroExpansion() } diff --git a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll index 31e30c8dcb8..3cc84e71de9 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll @@ -30,6 +30,7 @@ module Impl { op = "!" and path = "core::ops::bit::Not" and method = "not" and borrows = 0 or // Dereference + // todo: handle `core::ops::deref::DerefMut` op = "*" and path = "core::ops::deref::Deref" and method = "deref" and borrows = 1 ) or diff --git a/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/TypeItemImpl.qll similarity index 56% rename from rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll rename to rust/ql/lib/codeql/rust/elements/internal/TypeItemImpl.qll index 2243aed17a3..df7ebbcbbca 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/TypeItemImpl.qll @@ -1,19 +1,19 @@ // generated by codegen, remove this comment if you wish to edit this file /** - * This module provides a hand-modifiable wrapper around the generated class `Adt`. + * This module provides a hand-modifiable wrapper around the generated class `TypeItem`. * * INTERNAL: Do not use. */ -private import codeql.rust.elements.internal.generated.Adt +private import codeql.rust.elements.internal.generated.TypeItem /** - * INTERNAL: This module contains the customizable definition of `Adt` and should not + * INTERNAL: This module contains the customizable definition of `TypeItem` and should not * be referenced directly. */ module Impl { /** - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. */ - class Adt extends Generated::Adt { } + class TypeItem extends Generated::TypeItem { } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll deleted file mode 100644 index 385e3930fb8..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll +++ /dev/null @@ -1,45 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the generated definition of `Adt`. - * INTERNAL: Do not import directly. - */ - -private import codeql.rust.elements.internal.generated.Synth -private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl -import codeql.rust.elements.MacroItems - -/** - * INTERNAL: This module contains the fully generated definition of `Adt` and should not - * be referenced directly. - */ -module Generated { - /** - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. - * INTERNAL: Do not reference the `Generated::Adt` class directly. - * Use the subclass `Adt`, where the following predicates are available. - */ - class Adt extends Synth::TAdt, ItemImpl::Item { - /** - * Gets the `index`th derive macro expansion of this adt (0-based). - */ - MacroItems getDeriveMacroExpansion(int index) { - result = - Synth::convertMacroItemsFromRaw(Synth::convertAdtToRaw(this) - .(Raw::Adt) - .getDeriveMacroExpansion(index)) - } - - /** - * Gets any of the derive macro expansions of this adt. - */ - final MacroItems getADeriveMacroExpansion() { result = this.getDeriveMacroExpansion(_) } - - /** - * Gets the number of derive macro expansions of this adt. - */ - final int getNumberOfDeriveMacroExpansions() { - result = count(int i | exists(this.getDeriveMacroExpansion(i))) - } - } -} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll index b829ead848c..35ff29361bc 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll @@ -6,13 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name +import codeql.rust.elements.internal.TypeItemImpl::Impl as TypeItemImpl import codeql.rust.elements.VariantList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause /** * INTERNAL: This module contains the fully generated definition of `Enum` and should not @@ -29,53 +24,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::Enum` class directly. * Use the subclass `Enum`, where the following predicates are available. */ - class Enum extends Synth::TEnum, AdtImpl::Adt { + class Enum extends Synth::TEnum, TypeItemImpl::TypeItem { override string getAPrimaryQlClass() { result = "Enum" } - /** - * Gets the `index`th attr of this enum (0-based). - */ - Attr getAttr(int index) { - result = Synth::convertAttrFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getAttr(index)) - } - - /** - * Gets any of the attrs of this enum. - */ - final Attr getAnAttr() { result = this.getAttr(_) } - - /** - * Gets the number of attrs of this enum. - */ - final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the generic parameter list of this enum, if it exists. - */ - GenericParamList getGenericParamList() { - result = - Synth::convertGenericParamListFromRaw(Synth::convertEnumToRaw(this) - .(Raw::Enum) - .getGenericParamList()) - } - - /** - * Holds if `getGenericParamList()` exists. - */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } - - /** - * Gets the name of this enum, if it exists. - */ - Name getName() { - result = Synth::convertNameFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getName()) - } - - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - /** * Gets the variant list of this enum, if it exists. */ @@ -88,31 +39,5 @@ module Generated { * Holds if `getVariantList()` exists. */ final predicate hasVariantList() { exists(this.getVariantList()) } - - /** - * Gets the visibility of this enum, if it exists. - */ - Visibility getVisibility() { - result = - Synth::convertVisibilityFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getVisibility()) - } - - /** - * Holds if `getVisibility()` exists. - */ - final predicate hasVisibility() { exists(this.getVisibility()) } - - /** - * Gets the where clause of this enum, if it exists. - */ - WhereClause getWhereClause() { - result = - Synth::convertWhereClauseFromRaw(Synth::convertEnumToRaw(this).(Raw::Enum).getWhereClause()) - } - - /** - * Holds if `getWhereClause()` exists. - */ - final predicate hasWhereClause() { exists(this.getWhereClause()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll index 9d6ec74a53e..2b51f614619 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -2656,7 +2656,7 @@ private module Impl { private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nVariantList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nVariantList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -2664,9 +2664,9 @@ private module Impl { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nVariantList = nName + 1 and - nVisibility = nVariantList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nVariantList = nWhereClause + 1 and ( none() or @@ -2687,15 +2687,15 @@ private module Impl { or index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" or - index = nName and result = e.getVariantList() and partialPredicateCall = "VariantList()" - or - index = nVariantList and - result = e.getVisibility() and - partialPredicateCall = "Visibility()" + index = nName and result = e.getVisibility() and partialPredicateCall = "Visibility()" or index = nVisibility and result = e.getWhereClause() and partialPredicateCall = "WhereClause()" + or + index = nWhereClause and + result = e.getVariantList() and + partialPredicateCall = "VariantList()" ) ) } @@ -2862,18 +2862,18 @@ private module Impl { private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { exists( - int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, int nFieldList, - int nGenericParamList, int nName, int nVisibility, int nWhereClause + int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and nDeriveMacroExpansion = nAttributeMacroExpansion + e.getNumberOfDeriveMacroExpansions() and nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and - nFieldList = nAttr + 1 and - nGenericParamList = nFieldList + 1 and + nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nFieldList = nWhereClause + 1 and ( none() or @@ -2888,9 +2888,7 @@ private module Impl { result = e.getAttr(index - nDeriveMacroExpansion) and partialPredicateCall = "Attr(" + (index - nDeriveMacroExpansion).toString() + ")" or - index = nAttr and result = e.getFieldList() and partialPredicateCall = "FieldList()" - or - index = nFieldList and + index = nAttr and result = e.getGenericParamList() and partialPredicateCall = "GenericParamList()" or @@ -2901,6 +2899,8 @@ private module Impl { index = nVisibility and result = e.getWhereClause() and partialPredicateCall = "WhereClause()" + or + index = nWhereClause and result = e.getFieldList() and partialPredicateCall = "FieldList()" ) ) } @@ -2955,7 +2955,7 @@ private module Impl { private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nStructFieldList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nStructFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -2963,9 +2963,9 @@ private module Impl { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nStructFieldList = nName + 1 and - nVisibility = nStructFieldList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nStructFieldList = nWhereClause + 1 and ( none() or @@ -2986,17 +2986,15 @@ private module Impl { or index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" or - index = nName and - result = e.getStructFieldList() and - partialPredicateCall = "StructFieldList()" - or - index = nStructFieldList and - result = e.getVisibility() and - partialPredicateCall = "Visibility()" + index = nName and result = e.getVisibility() and partialPredicateCall = "Visibility()" or index = nVisibility and result = e.getWhereClause() and partialPredicateCall = "WhereClause()" + or + index = nWhereClause and + result = e.getStructFieldList() and + partialPredicateCall = "StructFieldList()" ) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll index 7682b4b99f4..5cc81a8777b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -5958,26 +5958,6 @@ module Raw { ) } - /** - * INTERNAL: Do not use. - * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. - */ - class Adt extends @adt, Item { - /** - * Gets the `index`th derive macro expansion of this adt (0-based). - */ - MacroItems getDeriveMacroExpansion(int index) { - adt_derive_macro_expansions(this, index, result) - } - - /** - * Gets the number of derive macro expansions of this adt. - */ - int getNumberOfDeriveMacroExpansions() { - result = count(int i | adt_derive_macro_expansions(this, i, _)) - } - } - /** * INTERNAL: Do not use. * An inline assembly expression. For example: @@ -6824,6 +6804,56 @@ module Raw { ) } + /** + * INTERNAL: Do not use. + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. + */ + class TypeItem extends @type_item, Item { + /** + * Gets the `index`th derive macro expansion of this type item (0-based). + */ + MacroItems getDeriveMacroExpansion(int index) { + type_item_derive_macro_expansions(this, index, result) + } + + /** + * Gets the number of derive macro expansions of this type item. + */ + int getNumberOfDeriveMacroExpansions() { + result = count(int i | type_item_derive_macro_expansions(this, i, _)) + } + + /** + * Gets the `index`th attr of this type item (0-based). + */ + Attr getAttr(int index) { type_item_attrs(this, index, result) } + + /** + * Gets the number of attrs of this type item. + */ + int getNumberOfAttrs() { result = count(int i | type_item_attrs(this, i, _)) } + + /** + * Gets the generic parameter list of this type item, if it exists. + */ + GenericParamList getGenericParamList() { type_item_generic_param_lists(this, result) } + + /** + * Gets the name of this type item, if it exists. + */ + Name getName() { type_item_names(this, result) } + + /** + * Gets the visibility of this type item, if it exists. + */ + Visibility getVisibility() { type_item_visibilities(this, result) } + + /** + * Gets the where clause of this type item, if it exists. + */ + WhereClause getWhereClause() { type_item_where_clauses(this, result) } + } + /** * INTERNAL: Do not use. * A `use` statement. For example: @@ -6992,49 +7022,19 @@ module Raw { * enum E {A, B(i32), C {x: i32}} * ``` */ - class Enum extends @enum, Adt { + class Enum extends @enum, TypeItem { override string toString() { result = "Enum" } - /** - * Gets the `index`th attr of this enum (0-based). - */ - Attr getAttr(int index) { enum_attrs(this, index, result) } - - /** - * Gets the number of attrs of this enum. - */ - int getNumberOfAttrs() { result = count(int i | enum_attrs(this, i, _)) } - - /** - * Gets the generic parameter list of this enum, if it exists. - */ - GenericParamList getGenericParamList() { enum_generic_param_lists(this, result) } - - /** - * Gets the name of this enum, if it exists. - */ - Name getName() { enum_names(this, result) } - /** * Gets the variant list of this enum, if it exists. */ VariantList getVariantList() { enum_variant_lists(this, result) } - - /** - * Gets the visibility of this enum, if it exists. - */ - Visibility getVisibility() { enum_visibilities(this, result) } - - /** - * Gets the where clause of this enum, if it exists. - */ - WhereClause getWhereClause() { enum_where_clauses(this, result) } } private Element getImmediateChildOfEnum(Enum e, int index) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nVariantList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nVariantList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -7042,9 +7042,9 @@ module Raw { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nVariantList = nName + 1 and - nVisibility = nVariantList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nVariantList = nWhereClause + 1 and ( none() or @@ -7058,11 +7058,11 @@ module Raw { or index = nGenericParamList and result = e.getName() or - index = nName and result = e.getVariantList() - or - index = nVariantList and result = e.getVisibility() + index = nName and result = e.getVisibility() or index = nVisibility and result = e.getWhereClause() + or + index = nWhereClause and result = e.getVariantList() ) ) } @@ -7473,59 +7473,29 @@ module Raw { * } * ``` */ - class Struct extends @struct, Adt { + class Struct extends @struct, TypeItem { override string toString() { result = "Struct" } - /** - * Gets the `index`th attr of this struct (0-based). - */ - Attr getAttr(int index) { struct_attrs(this, index, result) } - - /** - * Gets the number of attrs of this struct. - */ - int getNumberOfAttrs() { result = count(int i | struct_attrs(this, i, _)) } - /** * Gets the field list of this struct, if it exists. */ FieldList getFieldList() { struct_field_lists_(this, result) } - - /** - * Gets the generic parameter list of this struct, if it exists. - */ - GenericParamList getGenericParamList() { struct_generic_param_lists(this, result) } - - /** - * Gets the name of this struct, if it exists. - */ - Name getName() { struct_names(this, result) } - - /** - * Gets the visibility of this struct, if it exists. - */ - Visibility getVisibility() { struct_visibilities(this, result) } - - /** - * Gets the where clause of this struct, if it exists. - */ - WhereClause getWhereClause() { struct_where_clauses(this, result) } } private Element getImmediateChildOfStruct(Struct e, int index) { exists( - int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, int nFieldList, - int nGenericParamList, int nName, int nVisibility, int nWhereClause + int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and nDeriveMacroExpansion = nAttributeMacroExpansion + e.getNumberOfDeriveMacroExpansions() and nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and - nFieldList = nAttr + 1 and - nGenericParamList = nFieldList + 1 and + nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nFieldList = nWhereClause + 1 and ( none() or @@ -7535,15 +7505,15 @@ module Raw { or result = e.getAttr(index - nDeriveMacroExpansion) or - index = nAttr and result = e.getFieldList() - or - index = nFieldList and result = e.getGenericParamList() + index = nAttr and result = e.getGenericParamList() or index = nGenericParamList and result = e.getName() or index = nName and result = e.getVisibility() or index = nVisibility and result = e.getWhereClause() + or + index = nWhereClause and result = e.getFieldList() ) ) } @@ -7654,49 +7624,19 @@ module Raw { * union U { f1: u32, f2: f32 } * ``` */ - class Union extends @union, Adt { + class Union extends @union, TypeItem { override string toString() { result = "Union" } - /** - * Gets the `index`th attr of this union (0-based). - */ - Attr getAttr(int index) { union_attrs(this, index, result) } - - /** - * Gets the number of attrs of this union. - */ - int getNumberOfAttrs() { result = count(int i | union_attrs(this, i, _)) } - - /** - * Gets the generic parameter list of this union, if it exists. - */ - GenericParamList getGenericParamList() { union_generic_param_lists(this, result) } - - /** - * Gets the name of this union, if it exists. - */ - Name getName() { union_names(this, result) } - /** * Gets the struct field list of this union, if it exists. */ StructFieldList getStructFieldList() { union_struct_field_lists(this, result) } - - /** - * Gets the visibility of this union, if it exists. - */ - Visibility getVisibility() { union_visibilities(this, result) } - - /** - * Gets the where clause of this union, if it exists. - */ - WhereClause getWhereClause() { union_where_clauses(this, result) } } private Element getImmediateChildOfUnion(Union e, int index) { exists( int n, int nAttributeMacroExpansion, int nDeriveMacroExpansion, int nAttr, - int nGenericParamList, int nName, int nStructFieldList, int nVisibility, int nWhereClause + int nGenericParamList, int nName, int nVisibility, int nWhereClause, int nStructFieldList | n = 0 and nAttributeMacroExpansion = n + 1 and @@ -7704,9 +7644,9 @@ module Raw { nAttr = nDeriveMacroExpansion + e.getNumberOfAttrs() and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and - nStructFieldList = nName + 1 and - nVisibility = nStructFieldList + 1 and + nVisibility = nName + 1 and nWhereClause = nVisibility + 1 and + nStructFieldList = nWhereClause + 1 and ( none() or @@ -7720,11 +7660,11 @@ module Raw { or index = nGenericParamList and result = e.getName() or - index = nName and result = e.getStructFieldList() - or - index = nStructFieldList and result = e.getVisibility() + index = nName and result = e.getVisibility() or index = nVisibility and result = e.getWhereClause() + or + index = nWhereClause and result = e.getStructFieldList() ) ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll index 8910d269169..07c4657c651 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll @@ -6,13 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl -import codeql.rust.elements.Attr import codeql.rust.elements.FieldList -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.internal.TypeItemImpl::Impl as TypeItemImpl /** * INTERNAL: This module contains the fully generated definition of `Struct` and should not @@ -30,27 +25,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::Struct` class directly. * Use the subclass `Struct`, where the following predicates are available. */ - class Struct extends Synth::TStruct, AdtImpl::Adt { + class Struct extends Synth::TStruct, TypeItemImpl::TypeItem { override string getAPrimaryQlClass() { result = "Struct" } - /** - * Gets the `index`th attr of this struct (0-based). - */ - Attr getAttr(int index) { - result = - Synth::convertAttrFromRaw(Synth::convertStructToRaw(this).(Raw::Struct).getAttr(index)) - } - - /** - * Gets any of the attrs of this struct. - */ - final Attr getAnAttr() { result = this.getAttr(_) } - - /** - * Gets the number of attrs of this struct. - */ - final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - /** * Gets the field list of this struct, if it exists. */ @@ -63,62 +40,5 @@ module Generated { * Holds if `getFieldList()` exists. */ final predicate hasFieldList() { exists(this.getFieldList()) } - - /** - * Gets the generic parameter list of this struct, if it exists. - */ - GenericParamList getGenericParamList() { - result = - Synth::convertGenericParamListFromRaw(Synth::convertStructToRaw(this) - .(Raw::Struct) - .getGenericParamList()) - } - - /** - * Holds if `getGenericParamList()` exists. - */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } - - /** - * Gets the name of this struct, if it exists. - */ - Name getName() { - result = Synth::convertNameFromRaw(Synth::convertStructToRaw(this).(Raw::Struct).getName()) - } - - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - - /** - * Gets the visibility of this struct, if it exists. - */ - Visibility getVisibility() { - result = - Synth::convertVisibilityFromRaw(Synth::convertStructToRaw(this) - .(Raw::Struct) - .getVisibility()) - } - - /** - * Holds if `getVisibility()` exists. - */ - final predicate hasVisibility() { exists(this.getVisibility()) } - - /** - * Gets the where clause of this struct, if it exists. - */ - WhereClause getWhereClause() { - result = - Synth::convertWhereClauseFromRaw(Synth::convertStructToRaw(this) - .(Raw::Struct) - .getWhereClause()) - } - - /** - * Holds if `getWhereClause()` exists. - */ - final predicate hasWhereClause() { exists(this.getWhereClause()) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll index b5fc41677b2..8b22dbbac9d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -688,11 +688,6 @@ module Synth { */ class TAddressable = TItem or TVariant; - /** - * INTERNAL: Do not use. - */ - class TAdt = TEnum or TStruct or TUnion; - /** * INTERNAL: Do not use. */ @@ -769,8 +764,8 @@ module Synth { * INTERNAL: Do not use. */ class TItem = - TAdt or TAsmExpr or TAssocItem or TExternBlock or TExternCrate or TExternItem or TImpl or - TMacroDef or TMacroRules or TModule or TTrait or TTraitAlias or TUse; + TAsmExpr or TAssocItem or TExternBlock or TExternCrate or TExternItem or TImpl or TMacroDef or + TMacroRules or TModule or TTrait or TTraitAlias or TTypeItem or TUse; /** * INTERNAL: Do not use. @@ -820,6 +815,11 @@ module Synth { */ class TToken = TComment; + /** + * INTERNAL: Do not use. + */ + class TTypeItem = TEnum or TStruct or TUnion; + /** * INTERNAL: Do not use. */ @@ -2032,18 +2032,6 @@ module Synth { result = convertVariantFromRaw(e) } - /** - * INTERNAL: Do not use. - * Converts a raw DB element to a synthesized `TAdt`, if possible. - */ - TAdt convertAdtFromRaw(Raw::Element e) { - result = convertEnumFromRaw(e) - or - result = convertStructFromRaw(e) - or - result = convertUnionFromRaw(e) - } - /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TArrayExpr`, if possible. @@ -2379,8 +2367,6 @@ module Synth { * Converts a raw DB element to a synthesized `TItem`, if possible. */ TItem convertItemFromRaw(Raw::Element e) { - result = convertAdtFromRaw(e) - or result = convertAsmExprFromRaw(e) or result = convertAssocItemFromRaw(e) @@ -2403,6 +2389,8 @@ module Synth { or result = convertTraitAliasFromRaw(e) or + result = convertTypeItemFromRaw(e) + or result = convertUseFromRaw(e) } @@ -2534,6 +2522,18 @@ module Synth { */ TToken convertTokenFromRaw(Raw::Element e) { result = convertCommentFromRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a raw DB element to a synthesized `TTypeItem`, if possible. + */ + TTypeItem convertTypeItemFromRaw(Raw::Element e) { + result = convertEnumFromRaw(e) + or + result = convertStructFromRaw(e) + or + result = convertUnionFromRaw(e) + } + /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TTypeRepr`, if possible. @@ -3600,18 +3600,6 @@ module Synth { result = convertVariantToRaw(e) } - /** - * INTERNAL: Do not use. - * Converts a synthesized `TAdt` to a raw DB element, if possible. - */ - Raw::Element convertAdtToRaw(TAdt e) { - result = convertEnumToRaw(e) - or - result = convertStructToRaw(e) - or - result = convertUnionToRaw(e) - } - /** * INTERNAL: Do not use. * Converts a synthesized `TArrayExpr` to a raw DB element, if possible. @@ -3947,8 +3935,6 @@ module Synth { * Converts a synthesized `TItem` to a raw DB element, if possible. */ Raw::Element convertItemToRaw(TItem e) { - result = convertAdtToRaw(e) - or result = convertAsmExprToRaw(e) or result = convertAssocItemToRaw(e) @@ -3971,6 +3957,8 @@ module Synth { or result = convertTraitAliasToRaw(e) or + result = convertTypeItemToRaw(e) + or result = convertUseToRaw(e) } @@ -4102,6 +4090,18 @@ module Synth { */ Raw::Element convertTokenToRaw(TToken e) { result = convertCommentToRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TTypeItem` to a raw DB element, if possible. + */ + Raw::Element convertTypeItemToRaw(TTypeItem e) { + result = convertEnumToRaw(e) + or + result = convertStructToRaw(e) + or + result = convertUnionToRaw(e) + } + /** * INTERNAL: Do not use. * Converts a synthesized `TTypeRepr` to a raw DB element, if possible. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll new file mode 100644 index 00000000000..5bc8bfb3c77 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/TypeItem.qll @@ -0,0 +1,126 @@ +// generated by codegen, do not edit +/** + * This module provides the generated definition of `TypeItem`. + * INTERNAL: Do not import directly. + */ + +private import codeql.rust.elements.internal.generated.Synth +private import codeql.rust.elements.internal.generated.Raw +import codeql.rust.elements.Attr +import codeql.rust.elements.GenericParamList +import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl +import codeql.rust.elements.MacroItems +import codeql.rust.elements.Name +import codeql.rust.elements.Visibility +import codeql.rust.elements.WhereClause + +/** + * INTERNAL: This module contains the fully generated definition of `TypeItem` and should not + * be referenced directly. + */ +module Generated { + /** + * An item that defines a type. Either a `Struct`, `Enum`, or `Union`. + * INTERNAL: Do not reference the `Generated::TypeItem` class directly. + * Use the subclass `TypeItem`, where the following predicates are available. + */ + class TypeItem extends Synth::TTypeItem, ItemImpl::Item { + /** + * Gets the `index`th derive macro expansion of this type item (0-based). + */ + MacroItems getDeriveMacroExpansion(int index) { + result = + Synth::convertMacroItemsFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getDeriveMacroExpansion(index)) + } + + /** + * Gets any of the derive macro expansions of this type item. + */ + final MacroItems getADeriveMacroExpansion() { result = this.getDeriveMacroExpansion(_) } + + /** + * Gets the number of derive macro expansions of this type item. + */ + final int getNumberOfDeriveMacroExpansions() { + result = count(int i | exists(this.getDeriveMacroExpansion(i))) + } + + /** + * Gets the `index`th attr of this type item (0-based). + */ + Attr getAttr(int index) { + result = + Synth::convertAttrFromRaw(Synth::convertTypeItemToRaw(this).(Raw::TypeItem).getAttr(index)) + } + + /** + * Gets any of the attrs of this type item. + */ + final Attr getAnAttr() { result = this.getAttr(_) } + + /** + * Gets the number of attrs of this type item. + */ + final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } + + /** + * Gets the generic parameter list of this type item, if it exists. + */ + GenericParamList getGenericParamList() { + result = + Synth::convertGenericParamListFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getGenericParamList()) + } + + /** + * Holds if `getGenericParamList()` exists. + */ + final predicate hasGenericParamList() { exists(this.getGenericParamList()) } + + /** + * Gets the name of this type item, if it exists. + */ + Name getName() { + result = + Synth::convertNameFromRaw(Synth::convertTypeItemToRaw(this).(Raw::TypeItem).getName()) + } + + /** + * Holds if `getName()` exists. + */ + final predicate hasName() { exists(this.getName()) } + + /** + * Gets the visibility of this type item, if it exists. + */ + Visibility getVisibility() { + result = + Synth::convertVisibilityFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getVisibility()) + } + + /** + * Holds if `getVisibility()` exists. + */ + final predicate hasVisibility() { exists(this.getVisibility()) } + + /** + * Gets the where clause of this type item, if it exists. + */ + WhereClause getWhereClause() { + result = + Synth::convertWhereClauseFromRaw(Synth::convertTypeItemToRaw(this) + .(Raw::TypeItem) + .getWhereClause()) + } + + /** + * Holds if `getWhereClause()` exists. + */ + final predicate hasWhereClause() { exists(this.getWhereClause()) } + } +} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll index e42eed69263..5d31edafa11 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll @@ -6,13 +6,8 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw -import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl -import codeql.rust.elements.Attr -import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList -import codeql.rust.elements.Visibility -import codeql.rust.elements.WhereClause +import codeql.rust.elements.internal.TypeItemImpl::Impl as TypeItemImpl /** * INTERNAL: This module contains the fully generated definition of `Union` and should not @@ -29,53 +24,9 @@ module Generated { * INTERNAL: Do not reference the `Generated::Union` class directly. * Use the subclass `Union`, where the following predicates are available. */ - class Union extends Synth::TUnion, AdtImpl::Adt { + class Union extends Synth::TUnion, TypeItemImpl::TypeItem { override string getAPrimaryQlClass() { result = "Union" } - /** - * Gets the `index`th attr of this union (0-based). - */ - Attr getAttr(int index) { - result = Synth::convertAttrFromRaw(Synth::convertUnionToRaw(this).(Raw::Union).getAttr(index)) - } - - /** - * Gets any of the attrs of this union. - */ - final Attr getAnAttr() { result = this.getAttr(_) } - - /** - * Gets the number of attrs of this union. - */ - final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the generic parameter list of this union, if it exists. - */ - GenericParamList getGenericParamList() { - result = - Synth::convertGenericParamListFromRaw(Synth::convertUnionToRaw(this) - .(Raw::Union) - .getGenericParamList()) - } - - /** - * Holds if `getGenericParamList()` exists. - */ - final predicate hasGenericParamList() { exists(this.getGenericParamList()) } - - /** - * Gets the name of this union, if it exists. - */ - Name getName() { - result = Synth::convertNameFromRaw(Synth::convertUnionToRaw(this).(Raw::Union).getName()) - } - - /** - * Holds if `getName()` exists. - */ - final predicate hasName() { exists(this.getName()) } - /** * Gets the struct field list of this union, if it exists. */ @@ -90,33 +41,5 @@ module Generated { * Holds if `getStructFieldList()` exists. */ final predicate hasStructFieldList() { exists(this.getStructFieldList()) } - - /** - * Gets the visibility of this union, if it exists. - */ - Visibility getVisibility() { - result = - Synth::convertVisibilityFromRaw(Synth::convertUnionToRaw(this).(Raw::Union).getVisibility()) - } - - /** - * Holds if `getVisibility()` exists. - */ - final predicate hasVisibility() { exists(this.getVisibility()) } - - /** - * Gets the where clause of this union, if it exists. - */ - WhereClause getWhereClause() { - result = - Synth::convertWhereClauseFromRaw(Synth::convertUnionToRaw(this) - .(Raw::Union) - .getWhereClause()) - } - - /** - * Holds if `getWhereClause()` exists. - */ - final predicate hasWhereClause() { exists(this.getWhereClause()) } } } diff --git a/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml b/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml index 17b76e137d8..bef64edf68d 100644 --- a/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/actix-web.model.yml @@ -15,9 +15,4 @@ extensions: pack: codeql/rust-all extensible: summaryModel data: - - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[0]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[1]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[2]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[3]", "taint", "manual"] - - ["::into_inner", "Argument[self]", "ReturnValue.Field[4]", "taint", "manual"] \ No newline at end of file + - ["::into_inner", "Argument[self]", "ReturnValue", "taint", "manual"] \ No newline at end of file diff --git a/rust/ql/lib/codeql/rust/frameworks/axum.model.yml b/rust/ql/lib/codeql/rust/frameworks/axum.model.yml new file mode 100644 index 00000000000..7ae7dec3635 --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/axum.model.yml @@ -0,0 +1,23 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + # Get + - ["axum::routing::method_routing::get", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::get", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Post + - ["axum::routing::method_routing::post", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::post", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Put + - ["axum::routing::method_routing::put", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::put", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Delete + - ["axum::routing::method_routing::delete", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::delete", "Argument[0].Parameter[0..7]", "remote", "manual"] + # Patch + - ["axum::routing::method_routing::patch", "Argument[0].Parameter[0..7]", "remote", "manual"] + - ["::patch", "Argument[0].Parameter[0..7]", "remote", "manual"] + # on + - ["axum::routing::method_routing::on", "Argument[1].Parameter[0..7]", "remote", "manual"] + - ["::on", "Argument[1].Parameter[0..7]", "remote", "manual"] \ No newline at end of file diff --git a/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll b/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll index 6e50659103d..cbc638c8ae5 100644 --- a/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll +++ b/rust/ql/lib/codeql/rust/frameworks/rustcrypto/RustCrypto.qll @@ -30,7 +30,8 @@ class StreamCipherInit extends Cryptography::CryptographicOperation::Range { // extract the algorithm name from the type of `ce` or its receiver. exists(Type t, TypePath tp | t = inferType([call, call.(MethodCall).getReceiver()], tp) and - rawAlgorithmName = t.(StructType).getStruct().(Addressable).getCanonicalPath().splitAt("::") + rawAlgorithmName = + t.(StructType).getTypeItem().(Addressable).getCanonicalPath().splitAt("::") ) and algorithmName = simplifyAlgorithmName(rawAlgorithmName) and // only match a known cryptographic algorithm diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll index 9021e5d3643..6b09ababd74 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll @@ -162,15 +162,20 @@ class ArrayType extends BuiltinType { override string getDisplayName() { result = "[;]" } } -/** The builtin reference type `&T`. */ -class RefType extends BuiltinType { - RefType() { this.getName() = "Ref" } +/** A builtin reference type `&T` or `&mut T`. */ +abstract private class RefTypeImpl extends BuiltinType { } + +final class RefType = RefTypeImpl; + +/** The builtin shared reference type `&T`. */ +class RefSharedType extends RefTypeImpl { + RefSharedType() { this.getName() = "Ref" } override string getDisplayName() { result = "&" } } -/** The builtin reference type `&mut T`. */ -class RefMutType extends BuiltinType { +/** The builtin mutable reference type `&mut T`. */ +class RefMutType extends RefTypeImpl { RefMutType() { this.getName() = "RefMut" } override string getDisplayName() { result = "&mut" } diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll index 00e03053654..ec0e38f5739 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Stdlib.qll @@ -250,6 +250,19 @@ class IndexTrait extends Trait { } } +/** + * The [`IndexMut` trait][1]. + * + * [1]: https://doc.rust-lang.org/std/ops/trait.IndexMut.html + */ +class IndexMutTrait extends Trait { + pragma[nomagic] + IndexMutTrait() { this.getCanonicalPath() = "core::ops::index::IndexMut" } + + /** Gets the `index_mut` function. */ + Function getIndexMutFunction() { result = this.(TraitItemNode).getAssocItem("index_mut") } +} + /** * The [`Box` struct][1]. * diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml index 8e214ab77bd..afcc3c42c8d 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/core.model.yml @@ -96,6 +96,8 @@ extensions: - ["<_ as core::iter::traits::iterator::Iterator>::take", "Argument[self]", "ReturnValue", "taint", "manual"] # Pin - ["::new", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "manual"] + # This model is not precise, but helps in cases where a `Pin` is implicitly dereferenced. + - ["::new", "Argument[0].Reference", "ReturnValue", "value", "manual"] - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[core::pin::Pin::pointer]", "value", "manual"] - ["::into_inner", "Argument[0].Field[core::pin::Pin::pointer]", "ReturnValue", "value", "manual"] - ["::into_inner_unchecked", "Argument[0].Field[core::pin::Pin::pointer]", "ReturnValue", "value", "manual"] @@ -116,6 +118,10 @@ extensions: - ["::parse", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["::trim", "Argument[self]", "ReturnValue.Reference", "taint", "manual"] - ["::to_string", "Argument[self]", "ReturnValue", "taint", "manual"] + # Ord + - ["<_ as core::cmp::Ord>::min", "Argument[self,0]", "ReturnValue", "value", "manual"] + - ["<_ as core::cmp::Ord>::max", "Argument[self,0]", "ReturnValue", "value", "manual"] + - ["<_ as core::cmp::Ord>::clamp", "Argument[self,0,1]", "ReturnValue", "value", "manual"] - addsTo: pack: codeql/rust-all extensible: sourceModel @@ -141,3 +147,9 @@ extensions: - ["core::ptr::write_bytes", "Argument[0]", "pointer-access", "manual"] - ["core::ptr::write_unaligned", "Argument[0]", "pointer-access", "manual"] - ["core::ptr::write_volatile", "Argument[0]", "pointer-access", "manual"] + - addsTo: + pack: codeql/rust-all + extensible: excludeFieldTaintStep + data: + - ["core::ops::range::RangeInclusive::start"] + - ["core::ops::range::RangeInclusive::end"] \ No newline at end of file diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml index 076cea745fb..8be4fdc05bf 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/fs.model.yml @@ -58,7 +58,7 @@ extensions: data: - ["std::fs::canonicalize", "Argument[0].OptionalStep[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - ["std::fs::canonicalize", "Argument[0].OptionalBarrier[normalize-path]", "ReturnValue.Field[core::result::Result::Ok(0)]", "taint", "manual"] - - ["::as_path", "Argument[Self]", "ReturnValue.Reference", "value", "manual"] + - ["::as_path", "Argument[self].Reference", "ReturnValue.Reference", "value", "manual"] - ["::as_mut_os_string", "Argument[Self].Reference", "ReturnValue.Reference", "value", "manual"] - ["::into_os_string", "Argument[Self]", "ReturnValue", "value", "manual"] - ["::into_boxed_path", "Argument[Self]", "ReturnValue.Reference", "value", "manual"] diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index 28a72d370ae..e62f11b8e83 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -771,8 +771,12 @@ private TypeItemNode resolveBuiltin(TypeRepr tr) { tr instanceof ArrayTypeRepr and result instanceof Builtins::ArrayType or - tr instanceof RefTypeRepr and - result instanceof Builtins::RefType + tr = + any(RefTypeRepr rtr | + if rtr.isMut() + then result instanceof Builtins::RefMutType + else result instanceof Builtins::RefSharedType + ) or tr.(PtrTypeRepr).isConst() and result instanceof Builtins::PtrConstType @@ -1796,9 +1800,9 @@ private module DollarCrateResolution { macroDefPath = mc.getPath() ) or - exists(ItemNode adt | - expansion = adt.(Adt).getDeriveMacroExpansion(_) and - macroDefPath = adt.getAttr("derive").getMeta().getPath() + exists(ItemNode type | + expansion = type.(TypeItem).getDeriveMacroExpansion(_) and + macroDefPath = type.getAttr("derive").getMeta().getPath() ) } diff --git a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll index 857afc1f552..807225d1615 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll @@ -24,17 +24,10 @@ query predicate multiplePathResolutions(Path p, ItemNode i) { strictcount(ItemNode i0 | i0 = resolvePath(p) and not i0 instanceof Crate) > 1 } -// TODO: Take other calls into account -abstract private class CallExprBase extends InvocationExpr { } - -private class CallExprCallExprBase extends CallExpr, CallExprBase { } - -private class MethodCallExprCallExprBase extends MethodCallExpr, CallExprBase { } - -/** Holds if `call` has multiple static call targets including `target`. */ -query predicate multipleCallTargets(CallExprBase call, Callable target) { - target = call.getResolvedTarget() and - strictcount(call.getResolvedTarget()) > 1 +/** Holds if `ie` has multiple resolved targets including `target`. */ +query predicate multipleResolvedTargets(InvocationExpr ie, Addressable target) { + target = ie.getResolvedTarget() and + strictcount(ie.getResolvedTarget()) > 1 } /** Holds if `fe` resolves to multiple record fields including `field`. */ @@ -62,8 +55,8 @@ int getPathResolutionInconsistencyCounts(string type) { type = "Multiple path resolutions" and result = count(Path p | multiplePathResolutions(p, _) | p) or - type = "Multiple static call targets" and - result = count(CallExprBase call | multipleCallTargets(call, _) | call) + type = "Multiple resolved targets" and + result = count(InvocationExpr ie | multipleResolvedTargets(ie, _) | ie) or type = "Multiple record fields" and result = count(FieldExpr fe | multipleStructFields(fe, _) | fe) diff --git a/rust/ql/lib/codeql/rust/internal/Type.qll b/rust/ql/lib/codeql/rust/internal/Type.qll index b187a64dec1..9b409e20f76 100644 --- a/rust/ql/lib/codeql/rust/internal/Type.qll +++ b/rust/ql/lib/codeql/rust/internal/Type.qll @@ -32,10 +32,8 @@ private predicate dynTraitTypeParameter(Trait trait, AstNode n) { cached newtype TType = - TStruct(Struct s) { Stages::TypeInferenceStage::ref() } or - TEnum(Enum e) or + TDataType(TypeItem ti) { Stages::TypeInferenceStage::ref() } or TTrait(Trait t) or - TUnion(Union u) or TImplTraitType(ImplTraitTypeRepr impl) or TDynTraitType(Trait t) { t = any(DynTraitTypeRepr dt).getTrait() } or TNeverType() or @@ -92,7 +90,7 @@ abstract class Type extends TType { class TupleType extends StructType { private int arity; - TupleType() { arity = this.getStruct().(Builtins::TupleType).getArity() } + TupleType() { arity = this.getTypeItem().(Builtins::TupleType).getArity() } /** Gets the arity of this tuple type. */ int getArity() { result = arity } @@ -112,48 +110,55 @@ class UnitType extends TupleType { override string toString() { result = "()" } } -/** A struct type. */ -class StructType extends Type, TStruct { - private Struct struct; +class DataType extends Type, TDataType { + private TypeItem typeItem; - StructType() { this = TStruct(struct) } + DataType() { this = TDataType(typeItem) } - /** Gets the struct that this struct type represents. */ - Struct getStruct() { result = struct } + /** Gets the type item that this data type represents. */ + TypeItem getTypeItem() { result = typeItem } override TypeParameter getPositionalTypeParameter(int i) { - result = TTypeParamTypeParameter(struct.getGenericParamList().getTypeParam(i)) + result = TTypeParamTypeParameter(typeItem.getGenericParamList().getTypeParam(i)) } override TypeMention getTypeParameterDefault(int i) { - result = struct.getGenericParamList().getTypeParam(i).getDefaultType() + result = typeItem.getGenericParamList().getTypeParam(i).getDefaultType() } - override string toString() { result = struct.getName().getText() } + override string toString() { result = typeItem.getName().getText() } - override Location getLocation() { result = struct.getLocation() } + override Location getLocation() { result = typeItem.getLocation() } +} + +/** A struct type. */ +class StructType extends DataType { + private Struct struct; + + StructType() { struct = super.getTypeItem() } + + /** Gets the struct that this struct type represents. */ + override Struct getTypeItem() { result = struct } } /** An enum type. */ -class EnumType extends Type, TEnum { +class EnumType extends DataType { private Enum enum; - EnumType() { this = TEnum(enum) } + EnumType() { enum = super.getTypeItem() } /** Gets the enum that this enum type represents. */ - Enum getEnum() { result = enum } + override Enum getTypeItem() { result = enum } +} - override TypeParameter getPositionalTypeParameter(int i) { - result = TTypeParamTypeParameter(enum.getGenericParamList().getTypeParam(i)) - } +/** A union type. */ +class UnionType extends DataType { + private Union union; - override TypeMention getTypeParameterDefault(int i) { - result = enum.getGenericParamList().getTypeParam(i).getDefaultType() - } + UnionType() { union = super.getTypeItem() } - override string toString() { result = enum.getName().getText() } - - override Location getLocation() { result = enum.getLocation() } + /** Gets the union that this union type represents. */ + override Union getTypeItem() { result = union } } /** A trait type. */ @@ -186,35 +191,13 @@ class TraitType extends Type, TTrait { override Location getLocation() { result = trait.getLocation() } } -/** A union type. */ -class UnionType extends Type, TUnion { - private Union union; - - UnionType() { this = TUnion(union) } - - /** Gets the union that this union type represents. */ - Union getUnion() { result = union } - - override TypeParameter getPositionalTypeParameter(int i) { - result = TTypeParamTypeParameter(union.getGenericParamList().getTypeParam(i)) - } - - override TypeMention getTypeParameterDefault(int i) { - result = union.getGenericParamList().getTypeParam(i).getDefaultType() - } - - override string toString() { result = union.getName().getText() } - - override Location getLocation() { result = union.getLocation() } -} - /** * An array type. * * Array types like `[i64; 5]` are modeled as normal generic types. */ class ArrayType extends StructType { - ArrayType() { this.getStruct() instanceof Builtins::ArrayType } + ArrayType() { this.getTypeItem() instanceof Builtins::ArrayType } override string toString() { result = "[;]" } } @@ -224,21 +207,30 @@ TypeParamTypeParameter getArrayTypeParameter() { result = any(ArrayType t).getPositionalTypeParameter(0) } -/** - * A reference type. - * - * Reference types like `& i64` are modeled as normal generic types - * with a single type argument. - */ -class RefType extends StructType { - RefType() { this.getStruct() instanceof Builtins::RefType } +abstract class RefType extends StructType { } + +class RefMutType extends RefType { + RefMutType() { this.getTypeItem() instanceof Builtins::RefMutType } + + override string toString() { result = "&mut" } +} + +class RefSharedType extends RefType { + RefSharedType() { this.getTypeItem() instanceof Builtins::RefSharedType } override string toString() { result = "&" } } pragma[nomagic] -TypeParamTypeParameter getRefTypeParameter() { - result = any(RefType t).getPositionalTypeParameter(0) +RefType getRefType(boolean isMutable) { + isMutable = true and result instanceof RefMutType + or + isMutable = false and result instanceof RefSharedType +} + +pragma[nomagic] +TypeParamTypeParameter getRefTypeParameter(boolean isMutable) { + result = getRefType(isMutable).getPositionalTypeParameter(0) } /** @@ -321,7 +313,7 @@ class ImplTraitReturnType extends ImplTraitType { * with a single type argument. */ class SliceType extends StructType { - SliceType() { this.getStruct() instanceof Builtins::SliceType } + SliceType() { this.getTypeItem() instanceof Builtins::SliceType } override string toString() { result = "[]" } } @@ -347,13 +339,13 @@ TypeParamTypeParameter getPtrTypeParameter() { } class PtrMutType extends PtrType { - PtrMutType() { this.getStruct() instanceof Builtins::PtrMutType } + PtrMutType() { this.getTypeItem() instanceof Builtins::PtrMutType } override string toString() { result = "*mut" } } class PtrConstType extends PtrType { - PtrConstType() { this.getStruct() instanceof Builtins::PtrConstType } + PtrConstType() { this.getTypeItem() instanceof Builtins::PtrConstType } override string toString() { result = "*const" } } @@ -615,7 +607,7 @@ pragma[nomagic] predicate validSelfType(Type t) { t instanceof RefType or - exists(Struct s | t = TStruct(s) | + exists(Struct s | t = TDataType(s) | s instanceof BoxStruct or s instanceof RcStruct or s instanceof ArcStruct or diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index ed87b0c7104..c994cab6bb2 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1,6 +1,7 @@ /** Provides functionality for inferring types. */ private import codeql.util.Boolean +private import codeql.util.Option private import rust private import PathResolution private import Type @@ -234,6 +235,107 @@ private class NonMethodFunction extends Function { NonMethodFunction() { not this.hasSelfParam() } } +private module ImplOrTraitItemNodeOption = Option; + +private class ImplOrTraitItemNodeOption = ImplOrTraitItemNodeOption::Option; + +private class FunctionDeclaration extends Function { + private ImplOrTraitItemNodeOption parent; + + FunctionDeclaration() { + not this = any(ImplOrTraitItemNode i).getAnAssocItem() and parent.isNone() + or + this = parent.asSome().getASuccessor(_) + } + + /** Holds if this function is associated with `i`. */ + predicate isAssoc(ImplOrTraitItemNode i) { i = parent.asSome() } + + /** Holds if this is a free function. */ + predicate isFree() { parent.isNone() } + + /** Holds if this function is valid for `i`. */ + predicate isFor(ImplOrTraitItemNodeOption i) { i = parent } + + /** + * Holds if this function is valid for `i`. If `i` is a trait or `impl` block then + * this function must be declared directly inside `i`. + */ + predicate isDirectlyFor(ImplOrTraitItemNodeOption i) { + i.isNone() and + this.isFree() + or + this = i.asSome().getAnAssocItem() + } + + TypeParameter getTypeParameter(ImplOrTraitItemNodeOption i, TypeParameterPosition ppos) { + i = parent and + ( + typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) + or + typeParamMatchPosition(i.asSome().getTypeParam(_), result, ppos) + or + ppos.isImplicit() and result = TSelfTypeParameter(i.asSome()) + or + ppos.isImplicit() and result.(AssociatedTypeTypeParameter).getTrait() = i.asSome() + or + ppos.isImplicit() and this = result.(ImplTraitTypeTypeParameter).getFunction() + ) + } + + pragma[nomagic] + Type getParameterType(ImplOrTraitItemNodeOption i, FunctionPosition pos, TypePath path) { + i = parent and + ( + not pos.isReturn() and + result = getAssocFunctionTypeAt(this, i.asSome(), pos, path) + or + i.isNone() and + result = this.getParam(pos.asPosition()).getTypeRepr().(TypeMention).resolveTypeAt(path) + ) + } + + private Type resolveRetType(ImplOrTraitItemNodeOption i, TypePath path) { + i = parent and + ( + result = + getAssocFunctionTypeAt(this, i.asSome(), any(FunctionPosition pos | pos.isReturn()), path) + or + i.isNone() and + result = getReturnTypeMention(this).resolveTypeAt(path) + ) + } + + Type getReturnType(ImplOrTraitItemNodeOption i, TypePath path) { + if this.isAsync() + then + i = parent and + path.isEmpty() and + result = getFutureTraitType() + or + exists(TypePath suffix | + result = this.resolveRetType(i, suffix) and + path = TypePath::cons(getDynFutureOutputTypeParameter(), suffix) + ) + else result = this.resolveRetType(i, path) + } + + Type getDeclaredType(ImplOrTraitItemNodeOption i, FunctionPosition pos, TypePath path) { + result = this.getParameterType(i, pos, path) + or + pos.isReturn() and + result = this.getReturnType(i, path) + } + + string toStringExt(ImplOrTraitItemNode i) { + i = parent.asSome() and + if this = i.getAnAssocItem() + then result = this.toString() + else + result = this + " [" + [i.(Impl).getSelfTy().toString(), i.(Trait).getName().toString()] + "]" + } +} + pragma[nomagic] private TypeMention getCallExprTypeMentionArgument(CallExpr ce, TypeArgumentPosition apos) { exists(Path p, int i | p = CallExprImpl::getFunctionPath(ce) | @@ -267,11 +369,6 @@ private TypeMention getTypeAnnotation(AstNode n) { n = p.getPat() and result = p.getTypeRepr() ) - or - exists(Function f | - result = getReturnTypeMention(f) and - n = f.getFunctionBody() - ) } /** Gets the type of `n`, which has an explicit type annotation. */ @@ -282,6 +379,17 @@ private Type inferAnnotatedType(AstNode n, TypePath path) { result = n.(ShorthandSelfParameterMention).resolveTypeAt(path) } +pragma[nomagic] +private Type inferFunctionBodyType(AstNode n, TypePath path) { + exists(Function f | + n = f.getFunctionBody() and + result = getReturnTypeMention(f).resolveTypeAt(path) and + not exists(ImplTraitReturnType i | i.getFunction() = f | + result = i or result = i.getATypeParameter() + ) + ) +} + /** * Holds if `me` is a call to the `panic!` macro. * @@ -302,13 +410,12 @@ module CertainTypeInference { } pragma[nomagic] - private Type getCallExprType(CallExpr ce, Path p, Function f, TypePath tp) { - callResolvesTo(ce, p, f) and - result = - [ - f.(MethodCallMatchingInput::Declaration).getReturnType(tp), - f.(NonMethodCallMatchingInput::Declaration).getReturnType(tp) - ] + private Type getCallExprType(CallExpr ce, Path p, FunctionDeclaration f, TypePath path) { + exists(ImplOrTraitItemNodeOption i | + callResolvesTo(ce, p, f) and + result = f.getReturnType(i, path) and + f.isDirectlyFor(i) + ) } pragma[nomagic] @@ -393,7 +500,10 @@ module CertainTypeInference { n2 = ip.getName() and prefix1.isEmpty() and if ip.isRef() - then prefix2 = TypePath::singleton(getRefTypeParameter()) + then + exists(boolean isMutable | if ip.isMut() then isMutable = true else isMutable = false | + prefix2 = TypePath::singleton(getRefTypeParameter(isMutable)) + ) else prefix2.isEmpty() ) } @@ -419,6 +529,8 @@ module CertainTypeInference { result = inferAnnotatedType(n, path) and Stages::TypeInferenceStage::ref() or + result = inferFunctionBodyType(n, path) + or result = inferCertainCallExprType(n, path) or result = inferCertainTypeEquality(n, path) @@ -507,7 +619,7 @@ private Type inferLogicalOperationType(AstNode n, TypePath path) { exists(Builtins::Bool t, BinaryLogicalOperation be | n = [be, be.getLhs(), be.getRhs()] and path.isEmpty() and - result = TStruct(t) + result = TDataType(t) ) } @@ -610,9 +722,14 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat prefix2 = TypePath::singleton(inferRefExprType(re).getPositionalTypeParameter(0)) ) or - n1 = n2.(RefPat).getPat() and - prefix1.isEmpty() and - prefix2 = TypePath::singleton(getRefTypeParameter()) + n2 = + any(RefPat rp | + n1 = rp.getPat() and + prefix1.isEmpty() and + exists(boolean isMutable | if rp.isMut() then isMutable = true else isMutable = false | + prefix2 = TypePath::singleton(getRefTypeParameter(isMutable)) + ) + ) or exists(int i, int arity | prefix1.isEmpty() and @@ -770,14 +887,14 @@ private module StructExprMatchingInput implements MatchingInputSig { } abstract class Declaration extends AstNode { - abstract TypeParam getATypeParam(); - final TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getATypeParam(), result, ppos) + typeParamMatchPosition(this.getTypeItem().getGenericParamList().getATypeParam(), result, ppos) } abstract StructField getField(string name); + abstract TypeItem getTypeItem(); + Type getDeclaredType(DeclarationPosition dpos, TypePath path) { // type of a field exists(TypeMention tp | @@ -789,45 +906,28 @@ private module StructExprMatchingInput implements MatchingInputSig { dpos.isStructPos() and result = this.getTypeParameter(_) and path = TypePath::singleton(result) + or + // type of the struct or enum itself + dpos.isStructPos() and + path.isEmpty() and + result = TDataType(this.getTypeItem()) } } private class StructDecl extends Declaration, Struct { StructDecl() { this.isStruct() or this.isUnit() } - override TypeParam getATypeParam() { result = this.getGenericParamList().getATypeParam() } - override StructField getField(string name) { result = this.getStructField(name) } - override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = super.getDeclaredType(dpos, path) - or - // type of the struct itself - dpos.isStructPos() and - path.isEmpty() and - result = TStruct(this) - } + override TypeItem getTypeItem() { result = this } } private class StructVariantDecl extends Declaration, Variant { StructVariantDecl() { this.isStruct() or this.isUnit() } - Enum getEnum() { result.getVariantList().getAVariant() = this } - - override TypeParam getATypeParam() { - result = this.getEnum().getGenericParamList().getATypeParam() - } - override StructField getField(string name) { result = this.getStructField(name) } - override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = super.getDeclaredType(dpos, path) - or - // type of the enum itself - dpos.isStructPos() and - path.isEmpty() and - result = TEnum(this.getEnum()) - } + override TypeItem getTypeItem() { result = this.getEnum() } } class AccessPosition = DeclarationPosition; @@ -1153,6 +1253,36 @@ private predicate isComplexRootStripped(TypePath path, Type type) { type != TNeverType() } +private newtype TBorrowKind = + TNoBorrowKind() or + TSomeBorrowKind(Boolean isMutable) + +private class BorrowKind extends TBorrowKind { + predicate isNoBorrow() { this = TNoBorrowKind() } + + predicate isSharedBorrow() { this = TSomeBorrowKind(false) } + + predicate isMutableBorrow() { this = TSomeBorrowKind(true) } + + RefType getRefType() { + exists(boolean isMutable | + this = TSomeBorrowKind(isMutable) and + result = getRefType(isMutable) + ) + } + + string toString() { + this.isNoBorrow() and + result = "" + or + this.isMutableBorrow() and + result = "&mut" + or + this.isSharedBorrow() and + result = "&" + } +} + /** * Provides logic for resolving calls to methods. * @@ -1195,7 +1325,7 @@ private module MethodResolution { * * `strippedTypePath` points to the type `strippedType` inside `selfType`, * which is the (possibly complex-stripped) root type of `selfType`. For example, - * if `m` has a `&self` parameter, then `strippedTypePath` is `getRefTypeParameter()` + * if `m` has a `&self` parameter, then `strippedTypePath` is `getRefSharedTypeParameter()` * and `strippedType` is the type inside the reference. */ pragma[nomagic] @@ -1411,10 +1541,10 @@ private module MethodResolution { or this.supportsAutoDerefAndBorrow() and exists(TypePath path0, Type t0, string derefChain0 | - this.hasNoCompatibleTargetBorrow(derefChain0) and + this.hasNoCompatibleTargetMutBorrow(derefChain0) and t0 = this.getACandidateReceiverTypeAtNoBorrow(derefChain0, path0) | - path0.isCons(getRefTypeParameter(), path) and + path0.isCons(getRefTypeParameter(_), path) and result = t0 and derefChain = derefChain0 + ".ref" or @@ -1430,11 +1560,19 @@ private module MethodResolution { * Holds if the method inside `i` with matching name and arity can be ruled * out as a target of this call, because the candidate receiver type represented * by `derefChain` and `borrow` is incompatible with the `self` parameter type. + * + * The types are incompatible because they disagree on a concrete type somewhere + * inside `root`. */ pragma[nomagic] - private predicate hasIncompatibleTarget(ImplOrTraitItemNode i, string derefChain, boolean borrow) { - ReceiverIsInstantiationOfSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, derefChain, - borrow), i, _) + private predicate hasIncompatibleTarget( + ImplOrTraitItemNode i, string derefChain, BorrowKind borrow, Type root + ) { + exists(TypePath path | + ReceiverIsInstantiationOfSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, + derefChain, borrow), i, _, path) and + path.isCons(root.getATypeParameter(), _) + ) } /** @@ -1445,47 +1583,47 @@ private module MethodResolution { */ pragma[nomagic] private predicate hasIncompatibleBlanketLikeTarget( - ImplItemNode impl, string derefChain, boolean borrow + ImplItemNode impl, string derefChain, BorrowKind borrow ) { ReceiverIsNotInstantiationOfBlanketLikeSelfParam::argIsNotInstantiationOf(MkMethodCallCand(this, - derefChain, borrow), impl, _) + derefChain, borrow), impl, _, _) or ReceiverSatisfiesBlanketLikeConstraint::dissatisfiesBlanketConstraint(MkMethodCallCand(this, derefChain, borrow), impl) } /** - * Same as `getACandidateReceiverTypeAt`, but with traits substituted in for types - * with trait bounds. + * Same as `getACandidateReceiverTypeAt`, but excludes pseudo types `!` and `unknown`. */ pragma[nomagic] - Type getACandidateReceiverTypeAtSubstituteLookupTraits( - string derefChain, boolean borrow, TypePath path - ) { - result = substituteLookupTraits(this.getACandidateReceiverTypeAt(derefChain, borrow, path)) + Type getANonPseudoCandidateReceiverTypeAt(string derefChain, BorrowKind borrow, TypePath path) { + result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) and + result != TNeverType() and + result != TUnknownType() } pragma[nomagic] - private Type getComplexStrippedType(string derefChain, boolean borrow, TypePath strippedTypePath) { - result = - this.getACandidateReceiverTypeAtSubstituteLookupTraits(derefChain, borrow, strippedTypePath) and + private Type getComplexStrippedType( + string derefChain, BorrowKind borrow, TypePath strippedTypePath + ) { + result = this.getANonPseudoCandidateReceiverTypeAt(derefChain, borrow, strippedTypePath) and isComplexRootStripped(strippedTypePath, result) } bindingset[derefChain, borrow, strippedTypePath, strippedType] private predicate hasNoCompatibleNonBlanketLikeTargetCheck( - string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + string derefChain, BorrowKind borrow, TypePath strippedTypePath, Type strippedType ) { forall(ImplOrTraitItemNode i | methodCallNonBlanketCandidate(this, _, i, _, strippedTypePath, strippedType) | - this.hasIncompatibleTarget(i, derefChain, borrow) + this.hasIncompatibleTarget(i, derefChain, borrow, strippedType) ) } bindingset[derefChain, borrow, strippedTypePath, strippedType] private predicate hasNoCompatibleTargetCheck( - string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + string derefChain, BorrowKind borrow, TypePath strippedTypePath, Type strippedType ) { this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, borrow, strippedTypePath, strippedType) and @@ -1496,7 +1634,7 @@ private module MethodResolution { bindingset[derefChain, borrow, strippedTypePath, strippedType] private predicate hasNoCompatibleNonBlanketTargetCheck( - string derefChain, boolean borrow, TypePath strippedTypePath, Type strippedType + string derefChain, BorrowKind borrow, TypePath strippedTypePath, Type strippedType ) { this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, borrow, strippedTypePath, strippedType) and @@ -1507,12 +1645,11 @@ private module MethodResolution { ) } - /** - * Holds if the candidate receiver type represented by `derefChain` does not - * have a matching method target. - */ + // forex using recursion pragma[nomagic] - predicate hasNoCompatibleTargetNoBorrow(string derefChain) { + private predicate hasNoCompatibleTargetNoBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { ( this.supportsAutoDerefAndBorrow() or @@ -1520,10 +1657,46 @@ private module MethodResolution { // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` derefChain = "" ) and - exists(TypePath strippedTypePath, Type strippedType | - not derefChain.matches("%.ref") and // no need to try a borrow if the last thing we did was a deref - strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and - this.hasNoCompatibleTargetCheck(derefChain, false, strippedTypePath, strippedType) + strippedType = this.getComplexStrippedType(derefChain, TNoBorrowKind(), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleTargetNoBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleTargetCheck(derefChain, TNoBorrowKind(), strippedTypePath, t) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain` does not + * have a matching method target. + */ + pragma[nomagic] + predicate hasNoCompatibleTargetNoBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleTargetNoBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetNoBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + ( + this.supportsAutoDerefAndBorrow() + or + // needed for the `hasNoCompatibleTarget` check in + // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` + derefChain = "" + ) and + strippedType = this.getComplexStrippedType(derefChain, TNoBorrowKind(), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(derefChain, strippedTypePath, + strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TNoBorrowKind(), strippedTypePath, t) ) } @@ -1533,44 +1706,128 @@ private module MethodResolution { */ pragma[nomagic] predicate hasNoCompatibleNonBlanketTargetNoBorrow(string derefChain) { - ( - this.supportsAutoDerefAndBorrow() - or - // needed for the `hasNoCompatibleTarget` check in - // `ReceiverSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` - derefChain = "" - ) and - exists(TypePath strippedTypePath, Type strippedType | - not derefChain.matches("%.ref") and // no need to try a borrow if the last thing we did was a deref - strippedType = this.getComplexStrippedType(derefChain, false, strippedTypePath) and - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, false, strippedTypePath, strippedType) + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleTargetSharedBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleTargetNoBorrow(derefChain) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(false), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleTargetSharedBorrowToIndex(derefChain, strippedTypePath, strippedType, + n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TSomeBorrowKind(false), + strippedTypePath, t) ) } /** * Holds if the candidate receiver type represented by `derefChain`, followed - * by a borrow, does not have a matching method target. + * by a shared borrow, does not have a matching method target. */ pragma[nomagic] - predicate hasNoCompatibleTargetBorrow(string derefChain) { - exists(TypePath strippedTypePath, Type strippedType | - this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and - this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, true, strippedTypePath, - strippedType) + predicate hasNoCompatibleTargetSharedBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleTargetSharedBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleTargetMutBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleTargetSharedBorrow(derefChain) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(true), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleTargetMutBorrowToIndex(derefChain, strippedTypePath, strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketLikeTargetCheck(derefChain, TSomeBorrowKind(true), + strippedTypePath, t) ) } /** * Holds if the candidate receiver type represented by `derefChain`, followed - * by a borrow, does not have a matching non-blanket method target. + * by a `mut` borrow, does not have a matching method target. */ pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetBorrow(string derefChain) { - exists(TypePath strippedTypePath, Type strippedType | - this.hasNoCompatibleTargetNoBorrow(derefChain) and - strippedType = this.getComplexStrippedType(derefChain, true, strippedTypePath) and - this.hasNoCompatibleNonBlanketTargetCheck(derefChain, true, strippedTypePath, strippedType) + predicate hasNoCompatibleTargetMutBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleTargetMutBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetSharedBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleTargetNoBorrow(derefChain) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(false), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(derefChain, strippedTypePath, + strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TSomeBorrowKind(false), + strippedTypePath, t) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain`, followed + * by a shared borrow, does not have a matching non-blanket method target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTargetSharedBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) + ) + } + + // forex using recursion + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketTargetMutBorrowToIndex( + string derefChain, TypePath strippedTypePath, Type strippedType, int n + ) { + this.hasNoCompatibleNonBlanketTargetSharedBorrow(derefChain) and + strippedType = + this.getComplexStrippedType(derefChain, TSomeBorrowKind(true), strippedTypePath) and + n = -1 + or + this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(derefChain, strippedTypePath, + strippedType, n - 1) and + exists(Type t | t = getNthLookupType(strippedType, n) | + this.hasNoCompatibleNonBlanketTargetCheck(derefChain, TSomeBorrowKind(true), + strippedTypePath, t) + ) + } + + /** + * Holds if the candidate receiver type represented by `derefChain`, followed + * by a `mut` borrow, does not have a matching non-blanket method target. + */ + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTargetMutBorrow(string derefChain) { + exists(Type strippedType | + this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(derefChain, _, strippedType, + getLastLookupTypeIndex(strippedType)) ) } @@ -1587,20 +1844,29 @@ private module MethodResolution { * [1]: https://doc.rust-lang.org/reference/expressions/method-call-expr.html#r-expr.method.candidate-receivers */ pragma[nomagic] - Type getACandidateReceiverTypeAt(string derefChain, boolean borrow, TypePath path) { + Type getACandidateReceiverTypeAt(string derefChain, BorrowKind borrow, TypePath path) { result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, path) and - borrow = false + borrow.isNoBorrow() or - this.supportsAutoDerefAndBorrow() and - this.hasNoCompatibleTargetNoBorrow(derefChain) and - borrow = true and - ( - path.isEmpty() and - result instanceof RefType + exists(RefType rt | + // first try shared borrow + this.supportsAutoDerefAndBorrow() and + this.hasNoCompatibleTargetNoBorrow(derefChain) and + borrow.isSharedBorrow() or - exists(TypePath suffix | - result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, suffix) and - path = TypePath::cons(getRefTypeParameter(), suffix) + // then try mutable borrow + this.hasNoCompatibleTargetSharedBorrow(derefChain) and + borrow.isMutableBorrow() + | + rt = borrow.getRefType() and + ( + path.isEmpty() and + result = rt + or + exists(TypePath suffix | + result = this.getACandidateReceiverTypeAtNoBorrow(derefChain, suffix) and + path = TypePath::cons(rt.getPositionalTypeParameter(0), suffix) + ) ) ) } @@ -1608,10 +1874,10 @@ private module MethodResolution { /** * Gets a method that this call resolves to after having applied a sequence of * dereferences and possibly a borrow on the receiver type, encoded in the string - * `derefChain` and the Boolean `borrow`. + * `derefChain` and the enum `borrow`. */ pragma[nomagic] - Method resolveCallTarget(ImplOrTraitItemNode i, string derefChain, boolean borrow) { + Method resolveCallTarget(ImplOrTraitItemNode i, string derefChain, BorrowKind borrow) { exists(MethodCallCand mcc | mcc = MkMethodCallCand(this, derefChain, borrow) and result = mcc.resolveCallTarget(i) @@ -1619,12 +1885,12 @@ private module MethodResolution { } predicate receiverHasImplicitDeref(AstNode receiver) { - exists(this.resolveCallTarget(_, ".ref", false)) and + exists(this.resolveCallTarget(_, ".ref", TNoBorrowKind())) and receiver = this.getArg(any(ArgumentPosition pos | pos.isSelf())) } - predicate argumentHasImplicitBorrow(AstNode arg) { - exists(this.resolveCallTarget(_, "", true)) and + predicate argumentHasImplicitBorrow(AstNode arg, boolean isMutable) { + exists(this.resolveCallTarget(_, "", TSomeBorrowKind(isMutable))) and arg = this.getArg(any(ArgumentPosition pos | pos.isSelf())) } } @@ -1669,8 +1935,8 @@ private module MethodResolution { override Trait getTrait() { if this.isInMutableContext() - then result.getCanonicalPath() = "core::ops::index::IndexMut" - else result.getCanonicalPath() = "core::ops::index::Index" + then result instanceof IndexMutTrait + else result instanceof IndexTrait } } @@ -1733,30 +1999,39 @@ private module MethodResolution { result = super.getOperand(pos.asPosition() + 1) } - private predicate implicitBorrowAt(ArgumentPosition pos) { + private predicate implicitBorrowAt(ArgumentPosition pos, boolean isMutable) { exists(int borrows | super.isOverloaded(_, _, borrows) | - pos.isSelf() and borrows >= 1 + pos.isSelf() and + borrows >= 1 and + if this instanceof CompoundAssignmentExpr then isMutable = true else isMutable = false or - pos.asPosition() = 0 and borrows = 2 + pos.asPosition() = 0 and + borrows = 2 and + isMutable = false ) } override Type getArgumentTypeAt(ArgumentPosition pos, TypePath path) { - if this.implicitBorrowAt(pos) - then - result instanceof RefType and + exists(boolean isMutable, RefType rt | + this.implicitBorrowAt(pos, isMutable) and + rt = getRefType(isMutable) + | + result = rt and path.isEmpty() or exists(TypePath path0 | result = inferType(this.getArg(pos), path0) and - path = TypePath::cons(getRefTypeParameter(), path0) + path = TypePath::cons(rt.getPositionalTypeParameter(0), path0) ) - else result = inferType(this.getArg(pos), path) + ) + or + not this.implicitBorrowAt(pos, _) and + result = inferType(this.getArg(pos), path) } - override predicate argumentHasImplicitBorrow(AstNode arg) { + override predicate argumentHasImplicitBorrow(AstNode arg, boolean isMutable) { exists(ArgumentPosition pos | - this.implicitBorrowAt(pos) and + this.implicitBorrowAt(pos, isMutable) and arg = this.getArg(pos) ) } @@ -1773,7 +2048,7 @@ private module MethodResolution { } private newtype TMethodCallCand = - MkMethodCallCand(MethodCall mc, string derefChain, boolean borrow) { + MkMethodCallCand(MethodCall mc, string derefChain, BorrowKind borrow) { exists(mc.getACandidateReceiverTypeAt(derefChain, borrow, _)) } @@ -1781,25 +2056,27 @@ private module MethodResolution { private class MethodCallCand extends MkMethodCallCand { MethodCall mc_; string derefChain; - boolean borrow; + BorrowKind borrow; MethodCallCand() { this = MkMethodCallCand(mc_, derefChain, borrow) } MethodCall getMethodCall() { result = mc_ } Type getTypeAt(TypePath path) { - result = mc_.getACandidateReceiverTypeAtSubstituteLookupTraits(derefChain, borrow, path) and - not result = TNeverType() and - not result = TUnknownType() + result = + substituteLookupTraits(mc_.getANonPseudoCandidateReceiverTypeAt(derefChain, borrow, path)) } pragma[nomagic] predicate hasNoCompatibleNonBlanketTarget() { - mc_.hasNoCompatibleNonBlanketTargetBorrow(derefChain) and - borrow = true + mc_.hasNoCompatibleNonBlanketTargetSharedBorrow(derefChain) and + borrow.isSharedBorrow() + or + mc_.hasNoCompatibleNonBlanketTargetMutBorrow(derefChain) and + borrow.isMutableBorrow() or mc_.hasNoCompatibleNonBlanketTargetNoBorrow(derefChain) and - borrow = false + borrow.isNoBorrow() } pragma[nomagic] @@ -1818,7 +2095,7 @@ private module MethodResolution { */ pragma[nomagic] private predicate hasIncompatibleInherentTarget(Impl impl) { - ReceiverIsNotInstantiationOfInherentSelfParam::argIsNotInstantiationOf(this, impl, _) + ReceiverIsNotInstantiationOfInherentSelfParam::argIsNotInstantiationOf(this, impl, _, _) } /** @@ -1870,8 +2147,6 @@ private module MethodResolution { MethodArgsAreInstantiationsOf::argsAreInstantiationsOf(this, i, result) } - predicate hasNoBorrow() { borrow = false } - string toString() { result = mc_.toString() + " [" + derefChain + "; " + borrow + "]" } Location getLocation() { result = mc_.getLocation() } @@ -1884,17 +2159,17 @@ private module MethodResolution { predicate hasBlanketCandidate( MethodCallCand mcc, ImplItemNode impl, TypePath blanketPath, TypeParam blanketTypeParam ) { - exists(MethodCall mc | - mc = mcc.getMethodCall() and + exists(MethodCall mc, BorrowKind borrow | + mcc = MkMethodCallCand(mc, _, borrow) and methodCallBlanketLikeCandidate(mc, _, impl, _, blanketPath, blanketTypeParam) and // Only apply blanket implementations when no other implementations are possible; // this is to account for codebases that use the (unstable) specialization feature // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html) (mcc.hasNoCompatibleNonBlanketTarget() or not impl.isBlanketImplementation()) | - mcc.hasNoBorrow() + borrow.isNoBorrow() or - blanketPath.getHead() = getRefTypeParameter() + blanketPath.getHead() = borrow.getRefType().getPositionalTypeParameter(0) ) } } @@ -2068,71 +2343,43 @@ private module MethodResolution { private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSig { import FunctionPositionMatchingInput - final class Declaration extends Function { + private class MethodDeclaration extends Method, FunctionDeclaration { } + + private newtype TDeclaration = + TMethodFunctionDeclaration(ImplOrTraitItemNode i, MethodDeclaration m) { m.isAssoc(i) } + + final class Declaration extends TMethodFunctionDeclaration { + ImplOrTraitItemNode parent; + ImplOrTraitItemNodeOption someParent; + MethodDeclaration m; + + Declaration() { + this = TMethodFunctionDeclaration(parent, m) and + someParent.asSome() = parent + } + + predicate isMethod(ImplOrTraitItemNode i, Method method) { + this = TMethodFunctionDeclaration(i, method) + } + TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) - or - exists(ImplOrTraitItemNode i | this = i.getAnAssocItem() | - typeParamMatchPosition(i.getTypeParam(_), result, ppos) - or - ppos.isImplicit() and result = TSelfTypeParameter(i) - or - ppos.isImplicit() and - result.(AssociatedTypeTypeParameter).getTrait() = i - ) - or - ppos.isImplicit() and - this = result.(ImplTraitTypeTypeParameter).getFunction() - } - - pragma[nomagic] - Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(Param p, int i | - p = this.getParam(i) and - i = dpos.asPosition() and - result = p.getTypeRepr().(TypeMention).resolveTypeAt(path) - ) - or - dpos.isSelf() and - exists(SelfParam self | - self = pragma[only_bind_into](this.getSelfParam()) and - result = getSelfParamTypeMention(self).resolveTypeAt(path) - ) - } - - private Type resolveRetType(TypePath path) { - result = getReturnTypeMention(this).resolveTypeAt(path) - } - - pragma[nomagic] - Type getReturnType(TypePath path) { - if this.isAsync() - then - path.isEmpty() and - result = getFutureTraitType() - or - exists(TypePath suffix | - result = this.resolveRetType(suffix) and - path = TypePath::cons(getDynFutureOutputTypeParameter(), suffix) - ) - else result = this.resolveRetType(path) + result = m.getTypeParameter(someParent, ppos) } Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = this.getParameterType(dpos, path) - or - dpos.isReturn() and - result = this.getReturnType(path) + result = m.getDeclaredType(someParent, dpos, path) } + + string toString() { result = m.toStringExt(parent) } + + Location getLocation() { result = m.getLocation() } } class AccessEnvironment = string; bindingset[derefChain, borrow] - private AccessEnvironment encodeDerefChainBorrow(string derefChain, boolean borrow) { - exists(string suffix | if borrow = true then suffix = "borrow" else suffix = "" | - result = derefChain + ";" + suffix - ) + additional AccessEnvironment encodeDerefChainBorrow(string derefChain, BorrowKind borrow) { + result = derefChain + ";" + borrow } final private class MethodCallFinal = MethodResolution::MethodCall; @@ -2157,7 +2404,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi pragma[nomagic] private Type getInferredSelfType(AccessPosition apos, string derefChainBorrow, TypePath path) { - exists(string derefChain, boolean borrow | + exists(string derefChain, BorrowKind borrow | result = this.getACandidateReceiverTypeAt(derefChain, borrow, path) and derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and apos.isSelf() @@ -2177,7 +2424,7 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi or exists(TypePath suffix | result = inferType(this.getNodeAt(apos), suffix) and - path = TypePath::cons(getRefTypeParameter(), suffix) + path = TypePath::cons(getRefTypeParameter(_), suffix) ) else ( not apos.isSelf() and @@ -2192,14 +2439,19 @@ private module MethodCallMatchingInput implements MatchingWithEnvironmentInputSi result = this.getInferredNonSelfType(apos, path) } - Declaration getTarget(ImplOrTraitItemNode i, string derefChainBorrow) { - exists(string derefChain, boolean borrow | + Method getTarget(ImplOrTraitItemNode i, string derefChainBorrow) { + exists(string derefChain, BorrowKind borrow | derefChainBorrow = encodeDerefChainBorrow(derefChain, borrow) and result = this.resolveCallTarget(i, derefChain, borrow) // mutual recursion; resolving method calls requires resolving types and vice versa ) } - Declaration getTarget(string derefChainBorrow) { result = this.getTarget(_, derefChainBorrow) } + Declaration getTarget(string derefChainBorrow) { + exists(ImplOrTraitItemNode i, Method m | + m = this.getTarget(i, derefChainBorrow) and + result = TMethodFunctionDeclaration(i, m) + ) + } /** * Holds if the return type of this call at `path` may have to be inferred @@ -2235,7 +2487,7 @@ private Type inferMethodCallType0( // the implicit deref apos.isReturn() and a instanceof IndexExpr - then path0.isCons(getRefTypeParameter(), path) + then path0.isCons(getRefTypeParameter(_), path) else path = path0 ) } @@ -2258,13 +2510,13 @@ private Type inferMethodCallType1(AstNode n, boolean isReturn, TypePath path) { or // adjust for implicit deref apos.isSelf() and - derefChainBorrow = ".ref;" and - path = TypePath::cons(getRefTypeParameter(), path0) + derefChainBorrow = MethodCallMatchingInput::encodeDerefChainBorrow(".ref", TNoBorrowKind()) and + path = TypePath::cons(getRefTypeParameter(_), path0) or // adjust for implicit borrow apos.isSelf() and - derefChainBorrow = ";borrow" and - path0.isCons(getRefTypeParameter(), path) + derefChainBorrow = MethodCallMatchingInput::encodeDerefChainBorrow("", TSomeBorrowKind(_)) and + path0.isCons(getRefTypeParameter(_), path) ) } @@ -2451,13 +2703,6 @@ private module NonMethodResolution { NonMethodArgsAreInstantiationsOf::argsAreInstantiationsOf(this, i, result) } - pragma[inline] - ItemNode resolveCallTarget() { - result = this.resolveCallTargetViaPathResolution() - or - result = this.resolveCallTargetViaTypeInference(_) - } - pragma[nomagic] NonMethodFunction resolveTraitFunctionViaPathResolution(TraitItemNode trait) { this.hasTrait() and @@ -2578,6 +2823,54 @@ private module NonMethodResolution { ArgsAreInstantiationsOf; } +abstract private class TupleLikeConstructor extends Addressable { + final TypeParameter getTypeParameter(TypeParameterPosition ppos) { + typeParamMatchPosition(this.getTypeItem().getGenericParamList().getATypeParam(), result, ppos) + } + + abstract TypeItem getTypeItem(); + + abstract TupleField getTupleField(int i); + + Type getReturnType(TypePath path) { + result = TDataType(this.getTypeItem()) and + path.isEmpty() + or + result = TTypeParamTypeParameter(this.getTypeItem().getGenericParamList().getATypeParam()) and + path = TypePath::singleton(result) + } + + Type getDeclaredType(FunctionPosition pos, TypePath path) { + result = this.getParameterType(pos, path) + or + pos.isReturn() and + result = this.getReturnType(path) + or + pos.isSelf() and + result = this.getReturnType(path) + } + + Type getParameterType(FunctionPosition pos, TypePath path) { + result = this.getTupleField(pos.asPosition()).getTypeRepr().(TypeMention).resolveTypeAt(path) + } +} + +private class TupleLikeStruct extends TupleLikeConstructor instanceof Struct { + TupleLikeStruct() { this.isTuple() } + + override TypeItem getTypeItem() { result = this } + + override TupleField getTupleField(int i) { result = Struct.super.getTupleField(i) } +} + +private class TupleLikeVariant extends TupleLikeConstructor instanceof Variant { + TupleLikeVariant() { this.isTuple() } + + override TypeItem getTypeItem() { result = super.getEnum() } + + override TupleField getTupleField(int i) { result = Variant.super.getTupleField(i) } +} + /** * A matching configuration for resolving types of calls like * `foo::bar(baz)` where the target is not a method. @@ -2588,7 +2881,15 @@ private module NonMethodResolution { private module NonMethodCallMatchingInput implements MatchingInputSig { import FunctionPositionMatchingInput - abstract class Declaration extends AstNode { + private class NonMethodFunctionDeclaration extends NonMethodFunction, FunctionDeclaration { } + + private newtype TDeclaration = + TNonMethodFunctionDeclaration(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f) { + f.isFor(i) + } or + TTupleLikeConstructorDeclaration(TupleLikeConstructor tc) + + abstract class Declaration extends TDeclaration { abstract TypeParameter getTypeParameter(TypeParameterPosition ppos); pragma[nomagic] @@ -2602,69 +2903,20 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { dpos.isReturn() and result = this.getReturnType(path) } + + abstract string toString(); + + abstract Location getLocation(); } - abstract additional class TupleDeclaration extends Declaration { - override Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = super.getDeclaredType(dpos, path) - or - dpos.isSelf() and - result = this.getReturnType(path) - } - } + private class NonMethodFunctionDecl extends Declaration, TNonMethodFunctionDeclaration { + private ImplOrTraitItemNodeOption i; + private NonMethodFunctionDeclaration f; - private class TupleStructDecl extends TupleDeclaration, Struct { - TupleStructDecl() { this.isTuple() } + NonMethodFunctionDecl() { this = TNonMethodFunctionDeclaration(i, f) } override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) - } - - override Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(int pos | - result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and - pos = dpos.asPosition() - ) - } - - override Type getReturnType(TypePath path) { - result = TStruct(this) and - path.isEmpty() - or - result = TTypeParamTypeParameter(this.getGenericParamList().getATypeParam()) and - path = TypePath::singleton(result) - } - } - - private class TupleVariantDecl extends TupleDeclaration, Variant { - TupleVariantDecl() { this.isTuple() } - - override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getEnum().getGenericParamList().getATypeParam(), result, ppos) - } - - override Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(int pos | - result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and - pos = dpos.asPosition() - ) - } - - override Type getReturnType(TypePath path) { - exists(Enum enum | enum = this.getEnum() | - result = TEnum(enum) and - path.isEmpty() - or - result = TTypeParamTypeParameter(enum.getGenericParamList().getATypeParam()) and - path = TypePath::singleton(result) - ) - } - } - - private class NonMethodFunctionDecl extends Declaration, NonMethodFunction instanceof MethodCallMatchingInput::Declaration - { - override TypeParameter getTypeParameter(TypeParameterPosition ppos) { - result = MethodCallMatchingInput::Declaration.super.getTypeParameter(ppos) + result = f.getTypeParameter(i, ppos) } override Type getParameterType(DeclarationPosition dpos, TypePath path) { @@ -2685,20 +2937,42 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { // // we need to match `i32` against the type parameter `T` of the `impl` block. dpos.isSelf() and - exists(ImplOrTraitItemNode i | - this = i.getAnAssocItem() and - result = resolveImplOrTraitType(i, path) - ) + result = resolveImplOrTraitType(i.asSome(), path) or - exists(FunctionPosition fpos | - result = MethodCallMatchingInput::Declaration.super.getParameterType(fpos, path) and - dpos = fpos.getFunctionCallAdjusted(this) - ) + result = f.getParameterType(i, dpos, path) } - override Type getReturnType(TypePath path) { - result = MethodCallMatchingInput::Declaration.super.getReturnType(path) + override Type getReturnType(TypePath path) { result = f.getReturnType(i, path) } + + override string toString() { + i.isNone() and result = f.toString() + or + result = f.toStringExt(i.asSome()) } + + override Location getLocation() { result = f.getLocation() } + } + + private class TupleLikeConstructorDeclaration extends Declaration, + TTupleLikeConstructorDeclaration + { + TupleLikeConstructor tc; + + TupleLikeConstructorDeclaration() { this = TTupleLikeConstructorDeclaration(tc) } + + override TypeParameter getTypeParameter(TypeParameterPosition ppos) { + result = tc.getTypeParameter(ppos) + } + + override Type getParameterType(DeclarationPosition dpos, TypePath path) { + result = tc.getParameterType(dpos, path) + } + + override Type getReturnType(TypePath path) { result = tc.getReturnType(path) } + + override string toString() { result = tc.toString() } + + override Location getLocation() { result = tc.getLocation() } } class Access extends NonMethodResolution::NonMethodCall, ContextTyping::ContextTypedCallCand { @@ -2715,8 +2989,22 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { result = inferType(this.getNodeAt(apos), path) } + pragma[inline] Declaration getTarget() { - result = this.resolveCallTarget() // potential mutual recursion; resolving some associated function calls requires resolving types + exists(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f | + result = TNonMethodFunctionDeclaration(i, f) + | + f = this.resolveCallTargetViaTypeInference(i.asSome()) // mutual recursion; resolving some associated function calls requires resolving types + or + f = this.resolveTraitFunctionViaPathResolution(i.asSome()) + or + f = this.resolveCallTargetViaPathResolution() and + f.isDirectlyFor(i) + ) + or + exists(ItemNode i | i = this.resolveCallTargetViaPathResolution() | + result = TTupleLikeConstructorDeclaration(i) + ) } /** @@ -2725,21 +3013,17 @@ private module NonMethodCallMatchingInput implements MatchingInputSig { */ pragma[nomagic] predicate hasUnknownTypeAt(FunctionPosition pos, TypePath path) { - exists(ImplOrTraitItemNode i | - this.hasUnknownTypeAt(i, - [ - this.resolveCallTargetViaPathResolution().(NonMethodFunction), - this.resolveCallTargetViaTypeInference(i), - this.resolveTraitFunctionViaPathResolution(i) - ], pos, path) + exists(ImplOrTraitItemNodeOption i, NonMethodFunctionDeclaration f | + TNonMethodFunctionDeclaration(i, f) = this.getTarget() and + this.hasUnknownTypeAt(i.asSome(), f, pos, path) ) or // Tuple declarations, such as `Result::Ok(...)`, may also be context typed - exists(TupleDeclaration td, TypeParameter tp | - td = this.resolveCallTargetViaPathResolution() and + exists(TupleLikeConstructor tc, TypeParameter tp | + tc = this.resolveCallTargetViaPathResolution() and pos.isReturn() and - tp = td.getReturnType(path) and - not tp = td.getParameterType(_, _) and + tp = tc.getReturnType(path) and + not tp = tc.getParameterType(_, _) and // check that no explicit type arguments have been supplied for `tp` not exists(TypeArgumentPosition tapos | exists(this.getTypeArgument(tapos, _)) and @@ -2777,9 +3061,9 @@ private module OperationMatchingInput implements MatchingInputSig { class Declaration extends MethodCallMatchingInput::Declaration { private Method getSelfOrImpl() { - result = this + result = m or - this.implements(result) + m.implements(result) } pragma[nomagic] @@ -2796,30 +3080,19 @@ private module OperationMatchingInput implements MatchingInputSig { ) } - pragma[nomagic] - private Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(TypePath path0 | - result = super.getParameterType(dpos, path0) and - if this.borrowsAt(dpos) then path0.isCons(getRefTypeParameter(), path) else path0 = path - ) - } - pragma[nomagic] private predicate derefsReturn() { this.getSelfOrImpl() = any(DerefTrait t).getDerefFunction() } - pragma[nomagic] - private Type getReturnType(TypePath path) { - exists(TypePath path0 | - result = super.getReturnType(path0) and - if this.derefsReturn() then path0.isCons(getRefTypeParameter(), path) else path0 = path - ) - } - Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - result = this.getParameterType(dpos, path) - or - dpos.isReturn() and - result = this.getReturnType(path) + exists(TypePath path0 | + result = super.getDeclaredType(dpos, path0) and + if + this.borrowsAt(dpos) + or + dpos.isReturn() and this.derefsReturn() + then path0.isCons(getRefTypeParameter(_), path) + else path0 = path + ) } } @@ -2832,7 +3105,9 @@ private module OperationMatchingInput implements MatchingInputSig { } Declaration getTarget() { - result = this.resolveCallTarget(_, _, _) // mutual recursion + exists(ImplOrTraitItemNode i | + result.isMethod(i, this.resolveCallTarget(i, _, _)) // mutual recursion + ) } } } @@ -2914,7 +3189,7 @@ private module FieldExprMatchingInput implements MatchingInputSig { dpos.isSelf() and // no case for variants as those can only be destructured using pattern matching exists(Struct s | this.getAstNode() = [s.getStructField(_).(AstNode), s.getTupleField(_)] | - result = TStruct(s) and + result = TDataType(s) and path.isEmpty() or result = TTypeParamTypeParameter(s.getGenericParamList().getATypeParam()) and @@ -2968,9 +3243,9 @@ private module FieldExprMatchingInput implements MatchingInputSig { if apos.isSelf() then // adjust for implicit deref - path0.isCons(getRefTypeParameter(), path) + path0.isCons(getRefTypeParameter(_), path) or - not path0.isCons(getRefTypeParameter(), _) and + not path0.isCons(getRefTypeParameter(_), _) and not (result instanceof RefType and path0.isEmpty()) and path = path0 else path = path0 @@ -3012,9 +3287,9 @@ private Type inferFieldExprType(AstNode n, TypePath path) { if receiverType instanceof RefType then // adjust for implicit deref - not path0.isCons(getRefTypeParameter(), _) and + not path0.isCons(getRefTypeParameter(_), _) and not (path0.isEmpty() and result instanceof RefType) and - path = TypePath::cons(getRefTypeParameter(), path0) + path = TypePath::cons(getRefTypeParameter(_), path0) else path = path0 ) else path = path0 @@ -3029,14 +3304,26 @@ private Type inferRefExprType(RefExpr ref) { ref.isMut() and result instanceof PtrMutType or ref.isConst() and result instanceof PtrConstType - else result instanceof RefType + else + if ref.isMut() + then result instanceof RefMutType + else result instanceof RefSharedType } /** Gets the root type of the reference node `ref`. */ pragma[nomagic] private Type inferRefPatType(AstNode ref) { - (ref = any(IdentPat ip | ip.isRef()).getName() or ref instanceof RefPat) and - result instanceof RefType + exists(boolean isMut | + ref = + any(IdentPat ip | + ip.isRef() and + if ip.isMut() then isMut = true else isMut = false + ).getName() + or + ref = any(RefPat rp | if rp.isMut() then isMut = true else isMut = false) + | + result = getRefType(isMut) + ) } pragma[nomagic] @@ -3052,15 +3339,15 @@ private Type inferTryExprType(TryExpr te, TypePath path) { } pragma[nomagic] -private StructType getStrStruct() { result = TStruct(any(Builtins::Str s)) } +private StructType getStrStruct() { result = TDataType(any(Builtins::Str s)) } pragma[nomagic] -private StructType getStringStruct() { result = TStruct(any(StringStruct s)) } +private StructType getStringStruct() { result = TDataType(any(StringStruct s)) } pragma[nomagic] private Type inferLiteralType(LiteralExpr le, TypePath path, boolean certain) { path.isEmpty() and - exists(Builtins::BuiltinType t | result = TStruct(t) | + exists(Builtins::BuiltinType t | result = TDataType(t) | le instanceof CharLiteralExpr and t instanceof Builtins::Char and certain = true @@ -3090,9 +3377,9 @@ private Type inferLiteralType(LiteralExpr le, TypePath path, boolean certain) { or le instanceof StringLiteralExpr and ( - path.isEmpty() and result instanceof RefType + path.isEmpty() and result instanceof RefSharedType or - path = TypePath::singleton(getRefTypeParameter()) and + path = TypePath::singleton(getRefTypeParameter(false)) and result = getStrStruct() ) and certain = true @@ -3180,7 +3467,7 @@ private Type inferArrayExprType(ArrayExpr ae) { exists(ae) and result instanceof * Gets the root type of the range expression `re`. */ pragma[nomagic] -private Type inferRangeExprType(RangeExpr re) { result = TStruct(getRangeType(re)) } +private Type inferRangeExprType(RangeExpr re) { result = TDataType(getRangeType(re)) } /** * According to [the Rust reference][1]: _"array and slice-typed expressions @@ -3197,7 +3484,7 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { // TODO: Method resolution to the `std::ops::Index` trait can handle the // `Index` instances for slices and arrays. exists(TypePath exprPath, Builtins::BuiltinType t | - TStruct(t) = inferType(ie.getIndex()) and + TDataType(t) = inferType(ie.getIndex()) and ( // also allow `i32`, since that is currently the type that we infer for // integer literals like `0` @@ -3213,7 +3500,7 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { exprPath.isCons(getArrayTypeParameter(), path) or exists(TypePath path0 | - exprPath.isCons(getRefTypeParameter(), path0) and + exprPath.isCons(getRefTypeParameter(_), path0) and path0.isCons(getSliceTypeParameter(), path) ) ) @@ -3299,7 +3586,7 @@ private Type inferStructPatType(AstNode n, TypePath path) { private module TupleStructPatMatchingInput implements MatchingInputSig { import FunctionPositionMatchingInput - class Declaration = NonMethodCallMatchingInput::TupleDeclaration; + class Declaration = TupleLikeConstructor; class Access extends TupleStructPat { Type getTypeArgument(TypeArgumentPosition apos, TypePath path) { none() } @@ -3392,12 +3679,9 @@ private Type inferForLoopExprType(AstNode n, TypePath path) { * first-class function. */ final private class InvokedClosureExpr extends Expr { - private CallExpr call; + private CallExprImpl::DynamicCallExpr call; - InvokedClosureExpr() { - call.getFunction() = this and - (not this instanceof PathExpr or this = any(Variable v).getAnAccess()) - } + InvokedClosureExpr() { call.getFunction() = this } Type getTypeAt(TypePath path) { result = inferType(this, path) } @@ -3528,8 +3812,8 @@ private module Cached { /** Holds if `n` is implicitly borrowed. */ cached - predicate implicitBorrow(AstNode n) { - any(MethodResolution::MethodCall mc).argumentHasImplicitBorrow(n) + predicate implicitBorrow(AstNode n, boolean isMutable) { + any(MethodResolution::MethodCall mc).argumentHasImplicitBorrow(n, isMutable) } /** @@ -3560,11 +3844,11 @@ private module Cached { */ cached StructField resolveStructFieldExpr(FieldExpr fe, boolean isDereferenced) { - exists(string name, Type ty | + exists(string name, DataType ty | ty = getFieldExprLookupType(fe, pragma[only_bind_into](name), isDereferenced) | - result = ty.(StructType).getStruct().getStructField(pragma[only_bind_into](name)) or - result = ty.(UnionType).getUnion().getStructField(pragma[only_bind_into](name)) + result = ty.(StructType).getTypeItem().getStructField(pragma[only_bind_into](name)) or + result = ty.(UnionType).getTypeItem().getStructField(pragma[only_bind_into](name)) ) } @@ -3577,7 +3861,7 @@ private module Cached { result = getTupleFieldExprLookupType(fe, pragma[only_bind_into](i), isDereferenced) .(StructType) - .getStruct() + .getTypeItem() .getTupleField(pragma[only_bind_into](i)) ) } diff --git a/rust/ql/lib/codeql/rust/internal/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/TypeMention.qll index 3e2ca811107..d8cf06827f6 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeMention.qll @@ -54,13 +54,16 @@ class ArrayTypeReprMention extends TypeMention instanceof ArrayTypeRepr { } class RefTypeReprMention extends TypeMention instanceof RefTypeRepr { + private RefType resolveRootType() { + if super.isMut() then result instanceof RefMutType else result instanceof RefSharedType + } + override Type resolveTypeAt(TypePath path) { - path.isEmpty() and - result instanceof RefType + path.isEmpty() and result = this.resolveRootType() or exists(TypePath suffix | result = super.getTypeRepr().(TypeMention).resolveTypeAt(suffix) and - path = TypePath::cons(getRefTypeParameter(), suffix) + path = TypePath::cons(this.resolveRootType().getPositionalTypeParameter(0), suffix) ) } } @@ -268,9 +271,7 @@ class NonAliasPathTypeMention extends PathTypeMention { pragma[nomagic] private Type resolveRootType() { - result = TStruct(resolved) - or - result = TEnum(resolved) + result = TDataType(resolved) or exists(TraitItemNode trait | trait = resolved | // If this is a `Self` path, then it resolves to the implicit `Self` @@ -280,8 +281,6 @@ class NonAliasPathTypeMention extends PathTypeMention { else result = TTrait(trait) ) or - result = TUnion(resolved) - or result = TTypeParamTypeParameter(resolved) or result = TAssociatedTypeTypeParameter(resolved) @@ -438,20 +437,24 @@ class ShorthandSelfParameterMention extends TypeMention instanceof SelfParam { private Type resolveSelfType(TypePath path) { result = resolveImplOrTraitType(encl, path) } + private RefType resolveSelfRefRootType() { + super.isRef() and + if super.isMut() then result instanceof RefMutType else result instanceof RefSharedType + } + override Type resolveTypeAt(TypePath typePath) { - if super.isRef() - then - // `fn f(&self, ...)` - typePath.isEmpty() and - result instanceof RefType - or - exists(TypePath suffix | - result = this.resolveSelfType(suffix) and - typePath = TypePath::cons(getRefTypeParameter(), suffix) - ) - else - // `fn f(self, ...)` - result = this.resolveSelfType(typePath) + // `fn f(&self, ...)` + typePath.isEmpty() and + result = this.resolveSelfRefRootType() + or + exists(TypePath suffix | + result = this.resolveSelfType(suffix) and + typePath = TypePath::cons(this.resolveSelfRefRootType().getPositionalTypeParameter(0), suffix) + ) + or + // `fn f(self, ...)` + not super.isRef() and + result = this.resolveSelfType(typePath) } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll index c219ef0eacc..bbbbeaba2a6 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionType.qll @@ -194,6 +194,7 @@ class AssocFunctionType extends MkAssocFunctionType { Location getLocation() { result = this.getTypeMention().getLocation() } } +pragma[nomagic] private Trait getALookupTrait(Type t) { result = t.(TypeParamTypeParameter).getTypeParam().(TypeParamItemNode).resolveABound() or @@ -208,7 +209,7 @@ private Trait getALookupTrait(Type t) { * Gets the type obtained by substituting in relevant traits in which to do function * lookup, or `t` itself when no such trait exist. */ -bindingset[t] +pragma[nomagic] Type substituteLookupTraits(Type t) { not exists(getALookupTrait(t)) and result = t @@ -216,6 +217,30 @@ Type substituteLookupTraits(Type t) { result = TTrait(getALookupTrait(t)) } +/** + * Gets the `n`th `substituteLookupTraits` type for `t`, per some arbitrary order. + */ +pragma[nomagic] +Type getNthLookupType(Type t, int n) { + not exists(getALookupTrait(t)) and + result = t and + n = 0 + or + result = + TTrait(rank[n + 1](Trait trait, int i | + trait = getALookupTrait(t) and + i = idOfTypeParameterAstNode(trait) + | + trait order by i + )) +} + +/** + * Gets the index of the last `substituteLookupTraits` type for `t`. + */ +pragma[nomagic] +int getLastLookupTypeIndex(Type t) { result = max(int n | exists(getNthLookupType(t, n))) } + /** * A wrapper around `IsInstantiationOf` which ensures to substitute in lookup * traits when checking whether argument types are instantiations of function @@ -256,8 +281,10 @@ module ArgIsInstantiationOf< ArgSubstIsInstantiationOf::isInstantiationOf(arg, i, constraint) } - predicate argIsNotInstantiationOf(Arg arg, ImplOrTraitItemNode i, AssocFunctionType constraint) { - ArgSubstIsInstantiationOf::isNotInstantiationOf(arg, i, constraint) + predicate argIsNotInstantiationOf( + Arg arg, ImplOrTraitItemNode i, AssocFunctionType constraint, TypePath path + ) { + ArgSubstIsInstantiationOf::isNotInstantiationOf(arg, i, constraint, path) } } diff --git a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll index b8b40ffa257..d8d7be25933 100644 --- a/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/AccessInvalidPointerExtensions.qll @@ -10,6 +10,8 @@ private import codeql.rust.dataflow.FlowSink private import codeql.rust.Concepts private import codeql.rust.dataflow.internal.Node private import codeql.rust.security.Barriers as Barriers +private import codeql.rust.internal.TypeInference as TypeInference +private import codeql.rust.internal.Type /** * Provides default sources, sinks and barriers for detecting accesses to @@ -47,16 +49,22 @@ module AccessInvalidPointer { ModelsAsDataSource() { sourceNode(this, "pointer-invalidate") } } - /** - * A pointer access using the unary `*` operator. - */ + /** A raw pointer access using the unary `*` operator. */ private class DereferenceSink extends Sink { - DereferenceSink() { any(DerefExpr p).getExpr() = this.asExpr() } + DereferenceSink() { + exists(Expr p, DerefExpr d | p = d.getExpr() and p = this.asExpr() | + // Dereferencing a raw pointer is an unsafe operation. Hence relevant + // dereferences must occur inside code marked as unsafe. + // See: https://doc.rust-lang.org/reference/types/pointer.html#r-type.pointer.raw.safety + (p.getEnclosingBlock*().isUnsafe() or p.getEnclosingCallable().(Function).isUnsafe()) and + // We are only interested in dereferences of raw pointers, as other uses + // of `*` are safe. + (not exists(TypeInference::inferType(p)) or TypeInference::inferType(p) instanceof PtrType) + ) + } } - /** - * A pointer access from model data. - */ + /** A pointer access from model data. */ private class ModelsAsDataSink extends Sink { ModelsAsDataSink() { sinkNode(this, "pointer-access") } } diff --git a/rust/ql/lib/codeql/rust/security/Barriers.qll b/rust/ql/lib/codeql/rust/security/Barriers.qll index 845a689af11..a285bfe3569 100644 --- a/rust/ql/lib/codeql/rust/security/Barriers.qll +++ b/rust/ql/lib/codeql/rust/security/Barriers.qll @@ -14,7 +14,7 @@ private import codeql.rust.frameworks.stdlib.Builtins as Builtins /** A node whose type is a numeric type. */ class NumericTypeBarrier extends DataFlow::Node { NumericTypeBarrier() { - TypeInference::inferType(this.asExpr()).(StructType).getStruct() instanceof + TypeInference::inferType(this.asExpr()).(StructType).getTypeItem() instanceof Builtins::NumericType } } @@ -22,14 +22,14 @@ class NumericTypeBarrier extends DataFlow::Node { /** A node whose type is `bool`. */ class BooleanTypeBarrier extends DataFlow::Node { BooleanTypeBarrier() { - TypeInference::inferType(this.asExpr()).(StructType).getStruct() instanceof Builtins::Bool + TypeInference::inferType(this.asExpr()).(StructType).getTypeItem() instanceof Builtins::Bool } } /** A node whose type is an integral (integer). */ class IntegralTypeBarrier extends DataFlow::Node { IntegralTypeBarrier() { - TypeInference::inferType(this.asExpr()).(StructType).getStruct() instanceof + TypeInference::inferType(this.asExpr()).(StructType).getTypeItem() instanceof Builtins::IntegralType } } @@ -37,7 +37,7 @@ class IntegralTypeBarrier extends DataFlow::Node { /** A node whose type is a fieldless enum. */ class FieldlessEnumTypeBarrier extends DataFlow::Node { FieldlessEnumTypeBarrier() { - TypeInference::inferType(this.asExpr()).(EnumType).getEnum().isFieldless() + TypeInference::inferType(this.asExpr()).(EnumType).getTypeItem().isFieldless() } } diff --git a/rust/ql/lib/codeql/rust/security/XssExtensions.qll b/rust/ql/lib/codeql/rust/security/XssExtensions.qll index cb0510cd704..97318ff8173 100644 --- a/rust/ql/lib/codeql/rust/security/XssExtensions.qll +++ b/rust/ql/lib/codeql/rust/security/XssExtensions.qll @@ -59,4 +59,14 @@ module Xss { ) } } + + // TODO: Convert this to MaD once MaD supports sink for tuple struct expressions. + private class AxumHtmlSink extends Sink { + AxumHtmlSink() { + exists(TupleStructExpr call | + call.getResolvedTarget().getCanonicalPath() = "axum::response::Html" and + this.asExpr() = call.getSyntacticPositionalArgument(0) + ) + } + } } diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index a1006c2fb73..551f2cd20cf 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.2-dev +version: 0.2.3-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index e54d01f67a4..c467bf63916 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1876,8 +1876,7 @@ infer_type_reprs( ); @item = - @adt -| @asm_expr + @asm_expr | @assoc_item | @extern_block | @extern_crate @@ -1888,6 +1887,7 @@ infer_type_reprs( | @module | @trait | @trait_alias +| @type_item | @use ; @@ -2725,19 +2725,6 @@ yield_expr_exprs( int expr: @expr ref ); -@adt = - @enum -| @struct -| @union -; - -#keyset[id, index] -adt_derive_macro_expansions( - int id: @adt ref, - int index: int ref, - int derive_macro_expansion: @macro_items ref -); - asm_exprs( unique int id: @asm_expr ); @@ -3157,6 +3144,50 @@ trait_alias_where_clauses( int where_clause: @where_clause ref ); +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + uses( unique int id: @use ); @@ -3246,43 +3277,12 @@ enums( unique int id: @enum ); -#keyset[id, index] -enum_attrs( - int id: @enum ref, - int index: int ref, - int attr: @attr ref -); - -#keyset[id] -enum_generic_param_lists( - int id: @enum ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -enum_names( - int id: @enum ref, - int name: @name ref -); - #keyset[id] enum_variant_lists( int id: @enum ref, int variant_list: @variant_list ref ); -#keyset[id] -enum_visibilities( - int id: @enum ref, - int visibility: @visibility ref -); - -#keyset[id] -enum_where_clauses( - int id: @enum ref, - int where_clause: @where_clause ref -); - for_exprs( unique int id: @for_expr ); @@ -3476,43 +3476,12 @@ structs( unique int id: @struct ); -#keyset[id, index] -struct_attrs( - int id: @struct ref, - int index: int ref, - int attr: @attr ref -); - #keyset[id] struct_field_lists_( int id: @struct ref, int field_list: @field_list ref ); -#keyset[id] -struct_generic_param_lists( - int id: @struct ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -struct_names( - int id: @struct ref, - int name: @name ref -); - -#keyset[id] -struct_visibilities( - int id: @struct ref, - int visibility: @visibility ref -); - -#keyset[id] -struct_where_clauses( - int id: @struct ref, - int where_clause: @where_clause ref -); - type_aliases( unique int id: @type_alias ); @@ -3569,43 +3538,12 @@ unions( unique int id: @union ); -#keyset[id, index] -union_attrs( - int id: @union ref, - int index: int ref, - int attr: @attr ref -); - -#keyset[id] -union_generic_param_lists( - int id: @union ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -union_names( - int id: @union ref, - int name: @name ref -); - #keyset[id] union_struct_field_lists( int id: @union ref, int struct_field_list: @struct_field_list ref ); -#keyset[id] -union_visibilities( - int id: @union ref, - int visibility: @visibility ref -); - -#keyset[id] -union_where_clauses( - int id: @union ref, - int where_clause: @where_clause ref -); - while_exprs( unique int id: @while_expr ); diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme new file mode 100644 index 00000000000..e54d01f67a4 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/old.dbscheme @@ -0,0 +1,3624 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- 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 +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string 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 +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @adt +| @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme new file mode 100644 index 00000000000..c467bf63916 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/rust.dbscheme @@ -0,0 +1,3562 @@ +// generated by codegen, do not edit + +// from ../shared/tree-sitter-extractor/src/generator/prefix.dbscheme +/*- 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 +); + +/*- Empty location -*/ + +empty_location( + int location: @location_default ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string 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 +); + +/*- Diagnostic messages: severity -*/ + +case @diagnostic.severity of + 10 = @diagnostic_debug +| 20 = @diagnostic_info +| 30 = @diagnostic_warning +| 40 = @diagnostic_error +; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +overlayChangedFiles( + string path: string ref +); + + +// from prefix.dbscheme +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_default ref +); + + +// from schema + +@element = + @extractor_step +| @locatable +| @named_crate +| @unextracted +; + +extractor_steps( + unique int id: @extractor_step, + string action: string ref, + int duration_ms: int ref +); + +#keyset[id] +extractor_step_files( + int id: @extractor_step ref, + int file: @file ref +); + +@locatable = + @ast_node +| @crate +; + +named_crates( + unique int id: @named_crate, + string name: string ref, + int crate: @crate ref +); + +@unextracted = + @missing +| @unimplemented +; + +@ast_node = + @abi +| @addressable +| @arg_list +| @asm_dir_spec +| @asm_operand +| @asm_operand_expr +| @asm_option +| @asm_piece +| @asm_reg_spec +| @assoc_item_list +| @attr +| @callable +| @expr +| @extern_item_list +| @field_list +| @for_binder +| @format_args_arg +| @generic_arg +| @generic_arg_list +| @generic_param +| @generic_param_list +| @item_list +| @label +| @let_else +| @macro_items +| @match_arm +| @match_arm_list +| @match_guard +| @meta +| @name +| @param_base +| @param_list +| @parenthesized_arg_list +| @pat +| @path +| @path_ast_node +| @path_segment +| @rename +| @ret_type_repr +| @return_type_syntax +| @source_file +| @stmt +| @stmt_list +| @struct_expr_field +| @struct_expr_field_list +| @struct_field +| @struct_pat_field +| @struct_pat_field_list +| @token +| @token_tree +| @tuple_field +| @type_bound +| @type_bound_list +| @type_repr +| @use_bound_generic_arg +| @use_bound_generic_args +| @use_tree +| @use_tree_list +| @variant_list +| @visibility +| @where_clause +| @where_pred +; + +crates( + unique int id: @crate +); + +#keyset[id] +crate_names( + int id: @crate ref, + string name: string ref +); + +#keyset[id] +crate_versions( + int id: @crate ref, + string version: string ref +); + +#keyset[id, index] +crate_cfg_options( + int id: @crate ref, + int index: int ref, + string cfg_option: string ref +); + +#keyset[id, index] +crate_named_dependencies( + int id: @crate ref, + int index: int ref, + int named_dependency: @named_crate ref +); + +missings( + unique int id: @missing +); + +unimplementeds( + unique int id: @unimplemented +); + +abis( + unique int id: @abi +); + +#keyset[id] +abi_abi_strings( + int id: @abi ref, + string abi_string: string ref +); + +@addressable = + @item +| @variant +; + +arg_lists( + unique int id: @arg_list +); + +#keyset[id, index] +arg_list_args( + int id: @arg_list ref, + int index: int ref, + int arg: @expr ref +); + +asm_dir_specs( + unique int id: @asm_dir_spec +); + +@asm_operand = + @asm_const +| @asm_label +| @asm_reg_operand +| @asm_sym +; + +asm_operand_exprs( + unique int id: @asm_operand_expr +); + +#keyset[id] +asm_operand_expr_in_exprs( + int id: @asm_operand_expr ref, + int in_expr: @expr ref +); + +#keyset[id] +asm_operand_expr_out_exprs( + int id: @asm_operand_expr ref, + int out_expr: @expr ref +); + +asm_options( + unique int id: @asm_option +); + +#keyset[id] +asm_option_is_raw( + int id: @asm_option ref +); + +@asm_piece = + @asm_clobber_abi +| @asm_operand_named +| @asm_options_list +; + +asm_reg_specs( + unique int id: @asm_reg_spec +); + +#keyset[id] +asm_reg_spec_identifiers( + int id: @asm_reg_spec ref, + int identifier: @name_ref ref +); + +assoc_item_lists( + unique int id: @assoc_item_list +); + +#keyset[id, index] +assoc_item_list_assoc_items( + int id: @assoc_item_list ref, + int index: int ref, + int assoc_item: @assoc_item ref +); + +#keyset[id, index] +assoc_item_list_attrs( + int id: @assoc_item_list ref, + int index: int ref, + int attr: @attr ref +); + +attrs( + unique int id: @attr +); + +#keyset[id] +attr_meta( + int id: @attr ref, + int meta: @meta ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_param_lists( + int id: @callable ref, + int param_list: @param_list ref +); + +#keyset[id, index] +callable_attrs( + int id: @callable ref, + int index: int ref, + int attr: @attr ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr +| @cast_expr +| @closure_expr +| @continue_expr +| @field_expr +| @format_args_expr +| @if_expr +| @index_expr +| @labelable_expr +| @let_expr +| @literal_expr +| @macro_block_expr +| @macro_expr +| @match_expr +| @method_call_expr +| @offset_of_expr +| @paren_expr +| @path_expr_base +| @prefix_expr +| @range_expr +| @ref_expr +| @return_expr +| @struct_expr +| @try_expr +| @tuple_expr +| @underscore_expr +| @yeet_expr +| @yield_expr +; + +extern_item_lists( + unique int id: @extern_item_list +); + +#keyset[id, index] +extern_item_list_attrs( + int id: @extern_item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +extern_item_list_extern_items( + int id: @extern_item_list ref, + int index: int ref, + int extern_item: @extern_item ref +); + +@field_list = + @struct_field_list +| @tuple_field_list +; + +for_binders( + unique int id: @for_binder +); + +#keyset[id] +for_binder_generic_param_lists( + int id: @for_binder ref, + int generic_param_list: @generic_param_list ref +); + +format_args_args( + unique int id: @format_args_arg +); + +#keyset[id] +format_args_arg_exprs( + int id: @format_args_arg ref, + int expr: @expr ref +); + +#keyset[id] +format_args_arg_names( + int id: @format_args_arg ref, + int name: @name ref +); + +@generic_arg = + @assoc_type_arg +| @const_arg +| @lifetime_arg +| @type_arg +; + +generic_arg_lists( + unique int id: @generic_arg_list +); + +#keyset[id, index] +generic_arg_list_generic_args( + int id: @generic_arg_list ref, + int index: int ref, + int generic_arg: @generic_arg ref +); + +@generic_param = + @const_param +| @lifetime_param +| @type_param +; + +generic_param_lists( + unique int id: @generic_param_list +); + +#keyset[id, index] +generic_param_list_generic_params( + int id: @generic_param_list ref, + int index: int ref, + int generic_param: @generic_param ref +); + +item_lists( + unique int id: @item_list +); + +#keyset[id, index] +item_list_attrs( + int id: @item_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +item_list_items( + int id: @item_list ref, + int index: int ref, + int item: @item ref +); + +labels( + unique int id: @label +); + +#keyset[id] +label_lifetimes( + int id: @label ref, + int lifetime: @lifetime ref +); + +let_elses( + unique int id: @let_else +); + +#keyset[id] +let_else_block_exprs( + int id: @let_else ref, + int block_expr: @block_expr ref +); + +macro_items( + unique int id: @macro_items +); + +#keyset[id, index] +macro_items_items( + int id: @macro_items ref, + int index: int ref, + int item: @item ref +); + +match_arms( + unique int id: @match_arm +); + +#keyset[id, index] +match_arm_attrs( + int id: @match_arm ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_arm_exprs( + int id: @match_arm ref, + int expr: @expr ref +); + +#keyset[id] +match_arm_guards( + int id: @match_arm ref, + int guard: @match_guard ref +); + +#keyset[id] +match_arm_pats( + int id: @match_arm ref, + int pat: @pat ref +); + +match_arm_lists( + unique int id: @match_arm_list +); + +#keyset[id, index] +match_arm_list_arms( + int id: @match_arm_list ref, + int index: int ref, + int arm: @match_arm ref +); + +#keyset[id, index] +match_arm_list_attrs( + int id: @match_arm_list ref, + int index: int ref, + int attr: @attr ref +); + +match_guards( + unique int id: @match_guard +); + +#keyset[id] +match_guard_conditions( + int id: @match_guard ref, + int condition: @expr ref +); + +meta( + unique int id: @meta +); + +#keyset[id] +meta_exprs( + int id: @meta ref, + int expr: @expr ref +); + +#keyset[id] +meta_is_unsafe( + int id: @meta ref +); + +#keyset[id] +meta_paths( + int id: @meta ref, + int path: @path ref +); + +#keyset[id] +meta_token_trees( + int id: @meta ref, + int token_tree: @token_tree ref +); + +names( + unique int id: @name +); + +#keyset[id] +name_texts( + int id: @name ref, + string text: string ref +); + +@param_base = + @param +| @self_param +; + +#keyset[id, index] +param_base_attrs( + int id: @param_base ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +param_base_type_reprs( + int id: @param_base ref, + int type_repr: @type_repr ref +); + +param_lists( + unique int id: @param_list +); + +#keyset[id, index] +param_list_params( + int id: @param_list ref, + int index: int ref, + int param: @param ref +); + +#keyset[id] +param_list_self_params( + int id: @param_list ref, + int self_param: @self_param ref +); + +parenthesized_arg_lists( + unique int id: @parenthesized_arg_list +); + +#keyset[id, index] +parenthesized_arg_list_type_args( + int id: @parenthesized_arg_list ref, + int index: int ref, + int type_arg: @type_arg ref +); + +@pat = + @box_pat +| @const_block_pat +| @ident_pat +| @literal_pat +| @macro_pat +| @or_pat +| @paren_pat +| @path_pat +| @range_pat +| @ref_pat +| @rest_pat +| @slice_pat +| @struct_pat +| @tuple_pat +| @tuple_struct_pat +| @wildcard_pat +; + +paths( + unique int id: @path +); + +#keyset[id] +path_qualifiers( + int id: @path ref, + int qualifier: @path ref +); + +#keyset[id] +path_segments_( + int id: @path ref, + int segment: @path_segment ref +); + +@path_ast_node = + @path_expr +| @path_pat +| @struct_expr +| @struct_pat +| @tuple_struct_pat +; + +#keyset[id] +path_ast_node_paths( + int id: @path_ast_node ref, + int path: @path ref +); + +path_segments( + unique int id: @path_segment +); + +#keyset[id] +path_segment_generic_arg_lists( + int id: @path_segment ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +path_segment_identifiers( + int id: @path_segment ref, + int identifier: @name_ref ref +); + +#keyset[id] +path_segment_parenthesized_arg_lists( + int id: @path_segment ref, + int parenthesized_arg_list: @parenthesized_arg_list ref +); + +#keyset[id] +path_segment_ret_types( + int id: @path_segment ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +path_segment_return_type_syntaxes( + int id: @path_segment ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +path_segment_type_reprs( + int id: @path_segment ref, + int type_repr: @type_repr ref +); + +#keyset[id] +path_segment_trait_type_reprs( + int id: @path_segment ref, + int trait_type_repr: @path_type_repr ref +); + +renames( + unique int id: @rename +); + +#keyset[id] +rename_names( + int id: @rename ref, + int name: @name ref +); + +ret_type_reprs( + unique int id: @ret_type_repr +); + +#keyset[id] +ret_type_repr_type_reprs( + int id: @ret_type_repr ref, + int type_repr: @type_repr ref +); + +return_type_syntaxes( + unique int id: @return_type_syntax +); + +source_files( + unique int id: @source_file +); + +#keyset[id, index] +source_file_attrs( + int id: @source_file ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +source_file_items( + int id: @source_file ref, + int index: int ref, + int item: @item ref +); + +@stmt = + @expr_stmt +| @item +| @let_stmt +; + +stmt_lists( + unique int id: @stmt_list +); + +#keyset[id, index] +stmt_list_attrs( + int id: @stmt_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +stmt_list_statements( + int id: @stmt_list ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +stmt_list_tail_exprs( + int id: @stmt_list ref, + int tail_expr: @expr ref +); + +struct_expr_fields( + unique int id: @struct_expr_field +); + +#keyset[id, index] +struct_expr_field_attrs( + int id: @struct_expr_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_expr_field_exprs( + int id: @struct_expr_field ref, + int expr: @expr ref +); + +#keyset[id] +struct_expr_field_identifiers( + int id: @struct_expr_field ref, + int identifier: @name_ref ref +); + +struct_expr_field_lists( + unique int id: @struct_expr_field_list +); + +#keyset[id, index] +struct_expr_field_list_attrs( + int id: @struct_expr_field_list ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +struct_expr_field_list_fields( + int id: @struct_expr_field_list ref, + int index: int ref, + int field: @struct_expr_field ref +); + +#keyset[id] +struct_expr_field_list_spreads( + int id: @struct_expr_field_list ref, + int spread: @expr ref +); + +struct_fields( + unique int id: @struct_field +); + +#keyset[id, index] +struct_field_attrs( + int id: @struct_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_defaults( + int id: @struct_field ref, + int default: @expr ref +); + +#keyset[id] +struct_field_is_unsafe( + int id: @struct_field ref +); + +#keyset[id] +struct_field_names( + int id: @struct_field ref, + int name: @name ref +); + +#keyset[id] +struct_field_type_reprs( + int id: @struct_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +struct_field_visibilities( + int id: @struct_field ref, + int visibility: @visibility ref +); + +struct_pat_fields( + unique int id: @struct_pat_field +); + +#keyset[id, index] +struct_pat_field_attrs( + int id: @struct_pat_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_pat_field_identifiers( + int id: @struct_pat_field ref, + int identifier: @name_ref ref +); + +#keyset[id] +struct_pat_field_pats( + int id: @struct_pat_field ref, + int pat: @pat ref +); + +struct_pat_field_lists( + unique int id: @struct_pat_field_list +); + +#keyset[id, index] +struct_pat_field_list_fields( + int id: @struct_pat_field_list ref, + int index: int ref, + int field: @struct_pat_field ref +); + +#keyset[id] +struct_pat_field_list_rest_pats( + int id: @struct_pat_field_list ref, + int rest_pat: @rest_pat ref +); + +@token = + @comment +; + +token_trees( + unique int id: @token_tree +); + +tuple_fields( + unique int id: @tuple_field +); + +#keyset[id, index] +tuple_field_attrs( + int id: @tuple_field ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +tuple_field_type_reprs( + int id: @tuple_field ref, + int type_repr: @type_repr ref +); + +#keyset[id] +tuple_field_visibilities( + int id: @tuple_field ref, + int visibility: @visibility ref +); + +type_bounds( + unique int id: @type_bound +); + +#keyset[id] +type_bound_for_binders( + int id: @type_bound ref, + int for_binder: @for_binder ref +); + +#keyset[id] +type_bound_is_async( + int id: @type_bound ref +); + +#keyset[id] +type_bound_is_const( + int id: @type_bound ref +); + +#keyset[id] +type_bound_lifetimes( + int id: @type_bound ref, + int lifetime: @lifetime ref +); + +#keyset[id] +type_bound_type_reprs( + int id: @type_bound ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_bound_use_bound_generic_args( + int id: @type_bound ref, + int use_bound_generic_args: @use_bound_generic_args ref +); + +type_bound_lists( + unique int id: @type_bound_list +); + +#keyset[id, index] +type_bound_list_bounds( + int id: @type_bound_list ref, + int index: int ref, + int bound: @type_bound ref +); + +@type_repr = + @array_type_repr +| @dyn_trait_type_repr +| @fn_ptr_type_repr +| @for_type_repr +| @impl_trait_type_repr +| @infer_type_repr +| @macro_type_repr +| @never_type_repr +| @paren_type_repr +| @path_type_repr +| @ptr_type_repr +| @ref_type_repr +| @slice_type_repr +| @tuple_type_repr +; + +@use_bound_generic_arg = + @lifetime +| @name_ref +; + +use_bound_generic_args( + unique int id: @use_bound_generic_args +); + +#keyset[id, index] +use_bound_generic_args_use_bound_generic_args( + int id: @use_bound_generic_args ref, + int index: int ref, + int use_bound_generic_arg: @use_bound_generic_arg ref +); + +use_trees( + unique int id: @use_tree +); + +#keyset[id] +use_tree_is_glob( + int id: @use_tree ref +); + +#keyset[id] +use_tree_paths( + int id: @use_tree ref, + int path: @path ref +); + +#keyset[id] +use_tree_renames( + int id: @use_tree ref, + int rename: @rename ref +); + +#keyset[id] +use_tree_use_tree_lists( + int id: @use_tree ref, + int use_tree_list: @use_tree_list ref +); + +use_tree_lists( + unique int id: @use_tree_list +); + +#keyset[id, index] +use_tree_list_use_trees( + int id: @use_tree_list ref, + int index: int ref, + int use_tree: @use_tree ref +); + +variant_lists( + unique int id: @variant_list +); + +#keyset[id, index] +variant_list_variants( + int id: @variant_list ref, + int index: int ref, + int variant: @variant ref +); + +visibilities( + unique int id: @visibility +); + +#keyset[id] +visibility_paths( + int id: @visibility ref, + int path: @path ref +); + +where_clauses( + unique int id: @where_clause +); + +#keyset[id, index] +where_clause_predicates( + int id: @where_clause ref, + int index: int ref, + int predicate: @where_pred ref +); + +where_preds( + unique int id: @where_pred +); + +#keyset[id] +where_pred_for_binders( + int id: @where_pred ref, + int for_binder: @for_binder ref +); + +#keyset[id] +where_pred_lifetimes( + int id: @where_pred ref, + int lifetime: @lifetime ref +); + +#keyset[id] +where_pred_type_reprs( + int id: @where_pred ref, + int type_repr: @type_repr ref +); + +#keyset[id] +where_pred_type_bound_lists( + int id: @where_pred ref, + int type_bound_list: @type_bound_list ref +); + +array_expr_internals( + unique int id: @array_expr_internal +); + +#keyset[id, index] +array_expr_internal_attrs( + int id: @array_expr_internal ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +array_expr_internal_exprs( + int id: @array_expr_internal ref, + int index: int ref, + int expr: @expr ref +); + +#keyset[id] +array_expr_internal_is_semicolon( + int id: @array_expr_internal ref +); + +array_type_reprs( + unique int id: @array_type_repr +); + +#keyset[id] +array_type_repr_const_args( + int id: @array_type_repr ref, + int const_arg: @const_arg ref +); + +#keyset[id] +array_type_repr_element_type_reprs( + int id: @array_type_repr ref, + int element_type_repr: @type_repr ref +); + +asm_clobber_abis( + unique int id: @asm_clobber_abi +); + +asm_consts( + unique int id: @asm_const +); + +#keyset[id] +asm_const_exprs( + int id: @asm_const ref, + int expr: @expr ref +); + +#keyset[id] +asm_const_is_const( + int id: @asm_const ref +); + +asm_labels( + unique int id: @asm_label +); + +#keyset[id] +asm_label_block_exprs( + int id: @asm_label ref, + int block_expr: @block_expr ref +); + +asm_operand_nameds( + unique int id: @asm_operand_named +); + +#keyset[id] +asm_operand_named_asm_operands( + int id: @asm_operand_named ref, + int asm_operand: @asm_operand ref +); + +#keyset[id] +asm_operand_named_names( + int id: @asm_operand_named ref, + int name: @name ref +); + +asm_options_lists( + unique int id: @asm_options_list +); + +#keyset[id, index] +asm_options_list_asm_options( + int id: @asm_options_list ref, + int index: int ref, + int asm_option: @asm_option ref +); + +asm_reg_operands( + unique int id: @asm_reg_operand +); + +#keyset[id] +asm_reg_operand_asm_dir_specs( + int id: @asm_reg_operand ref, + int asm_dir_spec: @asm_dir_spec ref +); + +#keyset[id] +asm_reg_operand_asm_operand_exprs( + int id: @asm_reg_operand ref, + int asm_operand_expr: @asm_operand_expr ref +); + +#keyset[id] +asm_reg_operand_asm_reg_specs( + int id: @asm_reg_operand ref, + int asm_reg_spec: @asm_reg_spec ref +); + +asm_syms( + unique int id: @asm_sym +); + +#keyset[id] +asm_sym_paths( + int id: @asm_sym ref, + int path: @path ref +); + +assoc_type_args( + unique int id: @assoc_type_arg +); + +#keyset[id] +assoc_type_arg_const_args( + int id: @assoc_type_arg ref, + int const_arg: @const_arg ref +); + +#keyset[id] +assoc_type_arg_generic_arg_lists( + int id: @assoc_type_arg ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +assoc_type_arg_identifiers( + int id: @assoc_type_arg ref, + int identifier: @name_ref ref +); + +#keyset[id] +assoc_type_arg_param_lists( + int id: @assoc_type_arg ref, + int param_list: @param_list ref +); + +#keyset[id] +assoc_type_arg_ret_types( + int id: @assoc_type_arg ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +assoc_type_arg_return_type_syntaxes( + int id: @assoc_type_arg ref, + int return_type_syntax: @return_type_syntax ref +); + +#keyset[id] +assoc_type_arg_type_reprs( + int id: @assoc_type_arg ref, + int type_repr: @type_repr ref +); + +#keyset[id] +assoc_type_arg_type_bound_lists( + int id: @assoc_type_arg ref, + int type_bound_list: @type_bound_list ref +); + +await_exprs( + unique int id: @await_expr +); + +#keyset[id, index] +await_expr_attrs( + int id: @await_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +await_expr_exprs( + int id: @await_expr ref, + int expr: @expr ref +); + +become_exprs( + unique int id: @become_expr +); + +#keyset[id, index] +become_expr_attrs( + int id: @become_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +become_expr_exprs( + int id: @become_expr ref, + int expr: @expr ref +); + +binary_exprs( + unique int id: @binary_expr +); + +#keyset[id, index] +binary_expr_attrs( + int id: @binary_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +binary_expr_lhs( + int id: @binary_expr ref, + int lhs: @expr ref +); + +#keyset[id] +binary_expr_operator_names( + int id: @binary_expr ref, + string operator_name: string ref +); + +#keyset[id] +binary_expr_rhs( + int id: @binary_expr ref, + int rhs: @expr ref +); + +box_pats( + unique int id: @box_pat +); + +#keyset[id] +box_pat_pats( + int id: @box_pat ref, + int pat: @pat ref +); + +break_exprs( + unique int id: @break_expr +); + +#keyset[id, index] +break_expr_attrs( + int id: @break_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +break_expr_exprs( + int id: @break_expr ref, + int expr: @expr ref +); + +#keyset[id] +break_expr_lifetimes( + int id: @break_expr ref, + int lifetime: @lifetime ref +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_arg_lists( + int id: @call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_attrs( + int id: @call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr ref +); + +cast_exprs( + unique int id: @cast_expr +); + +#keyset[id, index] +cast_expr_attrs( + int id: @cast_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +cast_expr_exprs( + int id: @cast_expr ref, + int expr: @expr ref +); + +#keyset[id] +cast_expr_type_reprs( + int id: @cast_expr ref, + int type_repr: @type_repr ref +); + +closure_exprs( + unique int id: @closure_expr +); + +#keyset[id] +closure_expr_closure_bodies( + int id: @closure_expr ref, + int closure_body: @expr ref +); + +#keyset[id] +closure_expr_for_binders( + int id: @closure_expr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +closure_expr_is_async( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_const( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_gen( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_move( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_is_static( + int id: @closure_expr ref +); + +#keyset[id] +closure_expr_ret_types( + int id: @closure_expr ref, + int ret_type: @ret_type_repr ref +); + +comments( + unique int id: @comment, + int parent: @ast_node ref, + string text: string ref +); + +const_args( + unique int id: @const_arg +); + +#keyset[id] +const_arg_exprs( + int id: @const_arg ref, + int expr: @expr ref +); + +const_block_pats( + unique int id: @const_block_pat +); + +#keyset[id] +const_block_pat_block_exprs( + int id: @const_block_pat ref, + int block_expr: @block_expr ref +); + +#keyset[id] +const_block_pat_is_const( + int id: @const_block_pat ref +); + +const_params( + unique int id: @const_param +); + +#keyset[id, index] +const_param_attrs( + int id: @const_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_param_default_vals( + int id: @const_param ref, + int default_val: @const_arg ref +); + +#keyset[id] +const_param_is_const( + int id: @const_param ref +); + +#keyset[id] +const_param_names( + int id: @const_param ref, + int name: @name ref +); + +#keyset[id] +const_param_type_reprs( + int id: @const_param ref, + int type_repr: @type_repr ref +); + +continue_exprs( + unique int id: @continue_expr +); + +#keyset[id, index] +continue_expr_attrs( + int id: @continue_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +continue_expr_lifetimes( + int id: @continue_expr ref, + int lifetime: @lifetime ref +); + +dyn_trait_type_reprs( + unique int id: @dyn_trait_type_repr +); + +#keyset[id] +dyn_trait_type_repr_type_bound_lists( + int id: @dyn_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +expr_stmts( + unique int id: @expr_stmt +); + +#keyset[id] +expr_stmt_exprs( + int id: @expr_stmt ref, + int expr: @expr ref +); + +field_exprs( + unique int id: @field_expr +); + +#keyset[id, index] +field_expr_attrs( + int id: @field_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +field_expr_containers( + int id: @field_expr ref, + int container: @expr ref +); + +#keyset[id] +field_expr_identifiers( + int id: @field_expr ref, + int identifier: @name_ref ref +); + +fn_ptr_type_reprs( + unique int id: @fn_ptr_type_repr +); + +#keyset[id] +fn_ptr_type_repr_abis( + int id: @fn_ptr_type_repr ref, + int abi: @abi ref +); + +#keyset[id] +fn_ptr_type_repr_is_async( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_const( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_is_unsafe( + int id: @fn_ptr_type_repr ref +); + +#keyset[id] +fn_ptr_type_repr_param_lists( + int id: @fn_ptr_type_repr ref, + int param_list: @param_list ref +); + +#keyset[id] +fn_ptr_type_repr_ret_types( + int id: @fn_ptr_type_repr ref, + int ret_type: @ret_type_repr ref +); + +for_type_reprs( + unique int id: @for_type_repr +); + +#keyset[id] +for_type_repr_for_binders( + int id: @for_type_repr ref, + int for_binder: @for_binder ref +); + +#keyset[id] +for_type_repr_type_reprs( + int id: @for_type_repr ref, + int type_repr: @type_repr ref +); + +format_args_exprs( + unique int id: @format_args_expr +); + +#keyset[id, index] +format_args_expr_args( + int id: @format_args_expr ref, + int index: int ref, + int arg: @format_args_arg ref +); + +#keyset[id, index] +format_args_expr_attrs( + int id: @format_args_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +format_args_expr_templates( + int id: @format_args_expr ref, + int template: @expr ref +); + +ident_pats( + unique int id: @ident_pat +); + +#keyset[id, index] +ident_pat_attrs( + int id: @ident_pat ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ident_pat_is_mut( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_is_ref( + int id: @ident_pat ref +); + +#keyset[id] +ident_pat_names( + int id: @ident_pat ref, + int name: @name ref +); + +#keyset[id] +ident_pat_pats( + int id: @ident_pat ref, + int pat: @pat ref +); + +if_exprs( + unique int id: @if_expr +); + +#keyset[id, index] +if_expr_attrs( + int id: @if_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +if_expr_conditions( + int id: @if_expr ref, + int condition: @expr ref +); + +#keyset[id] +if_expr_elses( + int id: @if_expr ref, + int else: @expr ref +); + +#keyset[id] +if_expr_thens( + int id: @if_expr ref, + int then: @block_expr ref +); + +impl_trait_type_reprs( + unique int id: @impl_trait_type_repr +); + +#keyset[id] +impl_trait_type_repr_type_bound_lists( + int id: @impl_trait_type_repr ref, + int type_bound_list: @type_bound_list ref +); + +index_exprs( + unique int id: @index_expr +); + +#keyset[id, index] +index_expr_attrs( + int id: @index_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +index_expr_bases( + int id: @index_expr ref, + int base: @expr ref +); + +#keyset[id] +index_expr_indices( + int id: @index_expr ref, + int index: @expr ref +); + +infer_type_reprs( + unique int id: @infer_type_repr +); + +@item = + @asm_expr +| @assoc_item +| @extern_block +| @extern_crate +| @extern_item +| @impl +| @macro_def +| @macro_rules +| @module +| @trait +| @trait_alias +| @type_item +| @use +; + +#keyset[id] +item_attribute_macro_expansions( + int id: @item ref, + int attribute_macro_expansion: @macro_items ref +); + +@labelable_expr = + @block_expr +| @looping_expr +; + +#keyset[id] +labelable_expr_labels( + int id: @labelable_expr ref, + int label: @label ref +); + +let_exprs( + unique int id: @let_expr +); + +#keyset[id, index] +let_expr_attrs( + int id: @let_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_expr_scrutinees( + int id: @let_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +let_expr_pats( + int id: @let_expr ref, + int pat: @pat ref +); + +let_stmts( + unique int id: @let_stmt +); + +#keyset[id, index] +let_stmt_attrs( + int id: @let_stmt ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +let_stmt_initializers( + int id: @let_stmt ref, + int initializer: @expr ref +); + +#keyset[id] +let_stmt_let_elses( + int id: @let_stmt ref, + int let_else: @let_else ref +); + +#keyset[id] +let_stmt_pats( + int id: @let_stmt ref, + int pat: @pat ref +); + +#keyset[id] +let_stmt_type_reprs( + int id: @let_stmt ref, + int type_repr: @type_repr ref +); + +lifetimes( + unique int id: @lifetime +); + +#keyset[id] +lifetime_texts( + int id: @lifetime ref, + string text: string ref +); + +lifetime_args( + unique int id: @lifetime_arg +); + +#keyset[id] +lifetime_arg_lifetimes( + int id: @lifetime_arg ref, + int lifetime: @lifetime ref +); + +lifetime_params( + unique int id: @lifetime_param +); + +#keyset[id, index] +lifetime_param_attrs( + int id: @lifetime_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +lifetime_param_lifetimes( + int id: @lifetime_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +lifetime_param_type_bound_lists( + int id: @lifetime_param ref, + int type_bound_list: @type_bound_list ref +); + +literal_exprs( + unique int id: @literal_expr +); + +#keyset[id, index] +literal_expr_attrs( + int id: @literal_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +literal_expr_text_values( + int id: @literal_expr ref, + string text_value: string ref +); + +literal_pats( + unique int id: @literal_pat +); + +#keyset[id] +literal_pat_literals( + int id: @literal_pat ref, + int literal: @literal_expr ref +); + +macro_block_exprs( + unique int id: @macro_block_expr +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt ref +); + +#keyset[id] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +macro_exprs( + unique int id: @macro_expr +); + +#keyset[id] +macro_expr_macro_calls( + int id: @macro_expr ref, + int macro_call: @macro_call ref +); + +macro_pats( + unique int id: @macro_pat +); + +#keyset[id] +macro_pat_macro_calls( + int id: @macro_pat ref, + int macro_call: @macro_call ref +); + +macro_type_reprs( + unique int id: @macro_type_repr +); + +#keyset[id] +macro_type_repr_macro_calls( + int id: @macro_type_repr ref, + int macro_call: @macro_call ref +); + +match_exprs( + unique int id: @match_expr +); + +#keyset[id, index] +match_expr_attrs( + int id: @match_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +match_expr_scrutinees( + int id: @match_expr ref, + int scrutinee: @expr ref +); + +#keyset[id] +match_expr_match_arm_lists( + int id: @match_expr ref, + int match_arm_list: @match_arm_list ref +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#keyset[id] +method_call_expr_arg_lists( + int id: @method_call_expr ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +method_call_expr_attrs( + int id: @method_call_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +method_call_expr_generic_arg_lists( + int id: @method_call_expr ref, + int generic_arg_list: @generic_arg_list ref +); + +#keyset[id] +method_call_expr_identifiers( + int id: @method_call_expr ref, + int identifier: @name_ref ref +); + +#keyset[id] +method_call_expr_receivers( + int id: @method_call_expr ref, + int receiver: @expr ref +); + +name_refs( + unique int id: @name_ref +); + +#keyset[id] +name_ref_texts( + int id: @name_ref ref, + string text: string ref +); + +never_type_reprs( + unique int id: @never_type_repr +); + +offset_of_exprs( + unique int id: @offset_of_expr +); + +#keyset[id, index] +offset_of_expr_attrs( + int id: @offset_of_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +offset_of_expr_fields( + int id: @offset_of_expr ref, + int index: int ref, + int field: @name_ref ref +); + +#keyset[id] +offset_of_expr_type_reprs( + int id: @offset_of_expr ref, + int type_repr: @type_repr ref +); + +or_pats( + unique int id: @or_pat +); + +#keyset[id, index] +or_pat_pats( + int id: @or_pat ref, + int index: int ref, + int pat: @pat ref +); + +params( + unique int id: @param +); + +#keyset[id] +param_pats( + int id: @param ref, + int pat: @pat ref +); + +paren_exprs( + unique int id: @paren_expr +); + +#keyset[id, index] +paren_expr_attrs( + int id: @paren_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +paren_expr_exprs( + int id: @paren_expr ref, + int expr: @expr ref +); + +paren_pats( + unique int id: @paren_pat +); + +#keyset[id] +paren_pat_pats( + int id: @paren_pat ref, + int pat: @pat ref +); + +paren_type_reprs( + unique int id: @paren_type_repr +); + +#keyset[id] +paren_type_repr_type_reprs( + int id: @paren_type_repr ref, + int type_repr: @type_repr ref +); + +@path_expr_base = + @path_expr +; + +path_pats( + unique int id: @path_pat +); + +path_type_reprs( + unique int id: @path_type_repr +); + +#keyset[id] +path_type_repr_paths( + int id: @path_type_repr ref, + int path: @path ref +); + +prefix_exprs( + unique int id: @prefix_expr +); + +#keyset[id, index] +prefix_expr_attrs( + int id: @prefix_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +prefix_expr_exprs( + int id: @prefix_expr ref, + int expr: @expr ref +); + +#keyset[id] +prefix_expr_operator_names( + int id: @prefix_expr ref, + string operator_name: string ref +); + +ptr_type_reprs( + unique int id: @ptr_type_repr +); + +#keyset[id] +ptr_type_repr_is_const( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_is_mut( + int id: @ptr_type_repr ref +); + +#keyset[id] +ptr_type_repr_type_reprs( + int id: @ptr_type_repr ref, + int type_repr: @type_repr ref +); + +range_exprs( + unique int id: @range_expr +); + +#keyset[id, index] +range_expr_attrs( + int id: @range_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +range_expr_ends( + int id: @range_expr ref, + int end: @expr ref +); + +#keyset[id] +range_expr_operator_names( + int id: @range_expr ref, + string operator_name: string ref +); + +#keyset[id] +range_expr_starts( + int id: @range_expr ref, + int start: @expr ref +); + +range_pats( + unique int id: @range_pat +); + +#keyset[id] +range_pat_ends( + int id: @range_pat ref, + int end: @pat ref +); + +#keyset[id] +range_pat_operator_names( + int id: @range_pat ref, + string operator_name: string ref +); + +#keyset[id] +range_pat_starts( + int id: @range_pat ref, + int start: @pat ref +); + +ref_exprs( + unique int id: @ref_expr +); + +#keyset[id, index] +ref_expr_attrs( + int id: @ref_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +ref_expr_exprs( + int id: @ref_expr ref, + int expr: @expr ref +); + +#keyset[id] +ref_expr_is_const( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_mut( + int id: @ref_expr ref +); + +#keyset[id] +ref_expr_is_raw( + int id: @ref_expr ref +); + +ref_pats( + unique int id: @ref_pat +); + +#keyset[id] +ref_pat_is_mut( + int id: @ref_pat ref +); + +#keyset[id] +ref_pat_pats( + int id: @ref_pat ref, + int pat: @pat ref +); + +ref_type_reprs( + unique int id: @ref_type_repr +); + +#keyset[id] +ref_type_repr_is_mut( + int id: @ref_type_repr ref +); + +#keyset[id] +ref_type_repr_lifetimes( + int id: @ref_type_repr ref, + int lifetime: @lifetime ref +); + +#keyset[id] +ref_type_repr_type_reprs( + int id: @ref_type_repr ref, + int type_repr: @type_repr ref +); + +rest_pats( + unique int id: @rest_pat +); + +#keyset[id, index] +rest_pat_attrs( + int id: @rest_pat ref, + int index: int ref, + int attr: @attr ref +); + +return_exprs( + unique int id: @return_expr +); + +#keyset[id, index] +return_expr_attrs( + int id: @return_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +return_expr_exprs( + int id: @return_expr ref, + int expr: @expr ref +); + +self_params( + unique int id: @self_param +); + +#keyset[id] +self_param_is_ref( + int id: @self_param ref +); + +#keyset[id] +self_param_is_mut( + int id: @self_param ref +); + +#keyset[id] +self_param_lifetimes( + int id: @self_param ref, + int lifetime: @lifetime ref +); + +#keyset[id] +self_param_names( + int id: @self_param ref, + int name: @name ref +); + +slice_pats( + unique int id: @slice_pat +); + +#keyset[id, index] +slice_pat_pats( + int id: @slice_pat ref, + int index: int ref, + int pat: @pat ref +); + +slice_type_reprs( + unique int id: @slice_type_repr +); + +#keyset[id] +slice_type_repr_type_reprs( + int id: @slice_type_repr ref, + int type_repr: @type_repr ref +); + +struct_exprs( + unique int id: @struct_expr +); + +#keyset[id] +struct_expr_struct_expr_field_lists( + int id: @struct_expr ref, + int struct_expr_field_list: @struct_expr_field_list ref +); + +struct_field_lists( + unique int id: @struct_field_list +); + +#keyset[id, index] +struct_field_list_fields( + int id: @struct_field_list ref, + int index: int ref, + int field: @struct_field ref +); + +struct_pats( + unique int id: @struct_pat +); + +#keyset[id] +struct_pat_struct_pat_field_lists( + int id: @struct_pat ref, + int struct_pat_field_list: @struct_pat_field_list ref +); + +try_exprs( + unique int id: @try_expr +); + +#keyset[id, index] +try_expr_attrs( + int id: @try_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +try_expr_exprs( + int id: @try_expr ref, + int expr: @expr ref +); + +tuple_exprs( + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_attrs( + int id: @tuple_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +tuple_expr_fields( + int id: @tuple_expr ref, + int index: int ref, + int field: @expr ref +); + +tuple_field_lists( + unique int id: @tuple_field_list +); + +#keyset[id, index] +tuple_field_list_fields( + int id: @tuple_field_list ref, + int index: int ref, + int field: @tuple_field ref +); + +tuple_pats( + unique int id: @tuple_pat +); + +#keyset[id, index] +tuple_pat_fields( + int id: @tuple_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_struct_pats( + unique int id: @tuple_struct_pat +); + +#keyset[id, index] +tuple_struct_pat_fields( + int id: @tuple_struct_pat ref, + int index: int ref, + int field: @pat ref +); + +tuple_type_reprs( + unique int id: @tuple_type_repr +); + +#keyset[id, index] +tuple_type_repr_fields( + int id: @tuple_type_repr ref, + int index: int ref, + int field: @type_repr ref +); + +type_args( + unique int id: @type_arg +); + +#keyset[id] +type_arg_type_reprs( + int id: @type_arg ref, + int type_repr: @type_repr ref +); + +type_params( + unique int id: @type_param +); + +#keyset[id, index] +type_param_attrs( + int id: @type_param ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_param_default_types( + int id: @type_param ref, + int default_type: @type_repr ref +); + +#keyset[id] +type_param_names( + int id: @type_param ref, + int name: @name ref +); + +#keyset[id] +type_param_type_bound_lists( + int id: @type_param ref, + int type_bound_list: @type_bound_list ref +); + +underscore_exprs( + unique int id: @underscore_expr +); + +#keyset[id, index] +underscore_expr_attrs( + int id: @underscore_expr ref, + int index: int ref, + int attr: @attr ref +); + +variants( + unique int id: @variant +); + +#keyset[id, index] +variant_attrs( + int id: @variant ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +variant_discriminants( + int id: @variant ref, + int discriminant: @expr ref +); + +#keyset[id] +variant_field_lists( + int id: @variant ref, + int field_list: @field_list ref +); + +#keyset[id] +variant_names( + int id: @variant ref, + int name: @name ref +); + +#keyset[id] +variant_visibilities( + int id: @variant ref, + int visibility: @visibility ref +); + +wildcard_pats( + unique int id: @wildcard_pat +); + +yeet_exprs( + unique int id: @yeet_expr +); + +#keyset[id, index] +yeet_expr_attrs( + int id: @yeet_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yeet_expr_exprs( + int id: @yeet_expr ref, + int expr: @expr ref +); + +yield_exprs( + unique int id: @yield_expr +); + +#keyset[id, index] +yield_expr_attrs( + int id: @yield_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +yield_expr_exprs( + int id: @yield_expr ref, + int expr: @expr ref +); + +asm_exprs( + unique int id: @asm_expr +); + +#keyset[id, index] +asm_expr_asm_pieces( + int id: @asm_expr ref, + int index: int ref, + int asm_piece: @asm_piece ref +); + +#keyset[id, index] +asm_expr_attrs( + int id: @asm_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id, index] +asm_expr_templates( + int id: @asm_expr ref, + int index: int ref, + int template: @expr ref +); + +@assoc_item = + @const +| @function +| @macro_call +| @type_alias +; + +block_exprs( + unique int id: @block_expr +); + +#keyset[id, index] +block_expr_attrs( + int id: @block_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +block_expr_is_async( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_const( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_gen( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_move( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_try( + int id: @block_expr ref +); + +#keyset[id] +block_expr_is_unsafe( + int id: @block_expr ref +); + +#keyset[id] +block_expr_stmt_lists( + int id: @block_expr ref, + int stmt_list: @stmt_list ref +); + +extern_blocks( + unique int id: @extern_block +); + +#keyset[id] +extern_block_abis( + int id: @extern_block ref, + int abi: @abi ref +); + +#keyset[id, index] +extern_block_attrs( + int id: @extern_block ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_block_extern_item_lists( + int id: @extern_block ref, + int extern_item_list: @extern_item_list ref +); + +#keyset[id] +extern_block_is_unsafe( + int id: @extern_block ref +); + +extern_crates( + unique int id: @extern_crate +); + +#keyset[id, index] +extern_crate_attrs( + int id: @extern_crate ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +extern_crate_identifiers( + int id: @extern_crate ref, + int identifier: @name_ref ref +); + +#keyset[id] +extern_crate_renames( + int id: @extern_crate ref, + int rename: @rename ref +); + +#keyset[id] +extern_crate_visibilities( + int id: @extern_crate ref, + int visibility: @visibility ref +); + +@extern_item = + @function +| @macro_call +| @static +| @type_alias +; + +impls( + unique int id: @impl +); + +#keyset[id] +impl_assoc_item_lists( + int id: @impl ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +impl_attrs( + int id: @impl ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +impl_generic_param_lists( + int id: @impl ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +impl_is_const( + int id: @impl ref +); + +#keyset[id] +impl_is_default( + int id: @impl ref +); + +#keyset[id] +impl_is_unsafe( + int id: @impl ref +); + +#keyset[id] +impl_self_ties( + int id: @impl ref, + int self_ty: @type_repr ref +); + +#keyset[id] +impl_traits( + int id: @impl ref, + int trait: @type_repr ref +); + +#keyset[id] +impl_visibilities( + int id: @impl ref, + int visibility: @visibility ref +); + +#keyset[id] +impl_where_clauses( + int id: @impl ref, + int where_clause: @where_clause ref +); + +@looping_expr = + @for_expr +| @loop_expr +| @while_expr +; + +#keyset[id] +looping_expr_loop_bodies( + int id: @looping_expr ref, + int loop_body: @block_expr ref +); + +macro_defs( + unique int id: @macro_def +); + +#keyset[id] +macro_def_args( + int id: @macro_def ref, + int args: @token_tree ref +); + +#keyset[id, index] +macro_def_attrs( + int id: @macro_def ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_def_bodies( + int id: @macro_def ref, + int body: @token_tree ref +); + +#keyset[id] +macro_def_names( + int id: @macro_def ref, + int name: @name ref +); + +#keyset[id] +macro_def_visibilities( + int id: @macro_def ref, + int visibility: @visibility ref +); + +macro_rules( + unique int id: @macro_rules +); + +#keyset[id, index] +macro_rules_attrs( + int id: @macro_rules ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_rules_names( + int id: @macro_rules ref, + int name: @name ref +); + +#keyset[id] +macro_rules_token_trees( + int id: @macro_rules ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_rules_visibilities( + int id: @macro_rules ref, + int visibility: @visibility ref +); + +modules( + unique int id: @module +); + +#keyset[id, index] +module_attrs( + int id: @module ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +module_item_lists( + int id: @module ref, + int item_list: @item_list ref +); + +#keyset[id] +module_names( + int id: @module ref, + int name: @name ref +); + +#keyset[id] +module_visibilities( + int id: @module ref, + int visibility: @visibility ref +); + +path_exprs( + unique int id: @path_expr +); + +#keyset[id, index] +path_expr_attrs( + int id: @path_expr ref, + int index: int ref, + int attr: @attr ref +); + +traits( + unique int id: @trait +); + +#keyset[id] +trait_assoc_item_lists( + int id: @trait ref, + int assoc_item_list: @assoc_item_list ref +); + +#keyset[id, index] +trait_attrs( + int id: @trait ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_generic_param_lists( + int id: @trait ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_is_auto( + int id: @trait ref +); + +#keyset[id] +trait_is_unsafe( + int id: @trait ref +); + +#keyset[id] +trait_names( + int id: @trait ref, + int name: @name ref +); + +#keyset[id] +trait_type_bound_lists( + int id: @trait ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_visibilities( + int id: @trait ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_where_clauses( + int id: @trait ref, + int where_clause: @where_clause ref +); + +trait_aliases( + unique int id: @trait_alias +); + +#keyset[id, index] +trait_alias_attrs( + int id: @trait_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +trait_alias_generic_param_lists( + int id: @trait_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +trait_alias_names( + int id: @trait_alias ref, + int name: @name ref +); + +#keyset[id] +trait_alias_type_bound_lists( + int id: @trait_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +trait_alias_visibilities( + int id: @trait_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +trait_alias_where_clauses( + int id: @trait_alias ref, + int where_clause: @where_clause ref +); + +@type_item = + @enum +| @struct +| @union +; + +#keyset[id, index] +type_item_derive_macro_expansions( + int id: @type_item ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +#keyset[id, index] +type_item_attrs( + int id: @type_item ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_item_generic_param_lists( + int id: @type_item ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_item_names( + int id: @type_item ref, + int name: @name ref +); + +#keyset[id] +type_item_visibilities( + int id: @type_item ref, + int visibility: @visibility ref +); + +#keyset[id] +type_item_where_clauses( + int id: @type_item ref, + int where_clause: @where_clause ref +); + +uses( + unique int id: @use +); + +#keyset[id, index] +use_attrs( + int id: @use ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +use_use_trees( + int id: @use ref, + int use_tree: @use_tree ref +); + +#keyset[id] +use_visibilities( + int id: @use ref, + int visibility: @visibility ref +); + +consts( + unique int id: @const +); + +#keyset[id, index] +const_attrs( + int id: @const ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +const_bodies( + int id: @const ref, + int body: @expr ref +); + +#keyset[id] +const_generic_param_lists( + int id: @const ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +const_is_const( + int id: @const ref +); + +#keyset[id] +const_is_default( + int id: @const ref +); + +#keyset[id] +const_names( + int id: @const ref, + int name: @name ref +); + +#keyset[id] +const_type_reprs( + int id: @const ref, + int type_repr: @type_repr ref +); + +#keyset[id] +const_visibilities( + int id: @const ref, + int visibility: @visibility ref +); + +#keyset[id] +const_where_clauses( + int id: @const ref, + int where_clause: @where_clause ref +); + +#keyset[id] +const_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +for_exprs( + unique int id: @for_expr +); + +#keyset[id, index] +for_expr_attrs( + int id: @for_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +for_expr_iterables( + int id: @for_expr ref, + int iterable: @expr ref +); + +#keyset[id] +for_expr_pats( + int id: @for_expr ref, + int pat: @pat ref +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_function_bodies( + int id: @function ref, + int function_body: @block_expr ref +); + +#keyset[id] +function_generic_param_lists( + int id: @function ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +function_is_async( + int id: @function ref +); + +#keyset[id] +function_is_const( + int id: @function ref +); + +#keyset[id] +function_is_default( + int id: @function ref +); + +#keyset[id] +function_is_gen( + int id: @function ref +); + +#keyset[id] +function_is_unsafe( + int id: @function ref +); + +#keyset[id] +function_names( + int id: @function ref, + int name: @name ref +); + +#keyset[id] +function_ret_types( + int id: @function ref, + int ret_type: @ret_type_repr ref +); + +#keyset[id] +function_visibilities( + int id: @function ref, + int visibility: @visibility ref +); + +#keyset[id] +function_where_clauses( + int id: @function ref, + int where_clause: @where_clause ref +); + +#keyset[id] +function_has_implementation( + int id: @function ref +); + +loop_exprs( + unique int id: @loop_expr +); + +#keyset[id, index] +loop_expr_attrs( + int id: @loop_expr ref, + int index: int ref, + int attr: @attr ref +); + +macro_calls( + unique int id: @macro_call +); + +#keyset[id, index] +macro_call_attrs( + int id: @macro_call ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +macro_call_paths( + int id: @macro_call ref, + int path: @path ref +); + +#keyset[id] +macro_call_token_trees( + int id: @macro_call ref, + int token_tree: @token_tree ref +); + +#keyset[id] +macro_call_macro_call_expansions( + int id: @macro_call ref, + int macro_call_expansion: @ast_node ref +); + +statics( + unique int id: @static +); + +#keyset[id, index] +static_attrs( + int id: @static ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +static_bodies( + int id: @static ref, + int body: @expr ref +); + +#keyset[id] +static_is_mut( + int id: @static ref +); + +#keyset[id] +static_is_static( + int id: @static ref +); + +#keyset[id] +static_is_unsafe( + int id: @static ref +); + +#keyset[id] +static_names( + int id: @static ref, + int name: @name ref +); + +#keyset[id] +static_type_reprs( + int id: @static ref, + int type_repr: @type_repr ref +); + +#keyset[id] +static_visibilities( + int id: @static ref, + int visibility: @visibility ref +); + +structs( + unique int id: @struct +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +type_aliases( + unique int id: @type_alias +); + +#keyset[id, index] +type_alias_attrs( + int id: @type_alias ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +type_alias_generic_param_lists( + int id: @type_alias ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +type_alias_is_default( + int id: @type_alias ref +); + +#keyset[id] +type_alias_names( + int id: @type_alias ref, + int name: @name ref +); + +#keyset[id] +type_alias_type_reprs( + int id: @type_alias ref, + int type_repr: @type_repr ref +); + +#keyset[id] +type_alias_type_bound_lists( + int id: @type_alias ref, + int type_bound_list: @type_bound_list ref +); + +#keyset[id] +type_alias_visibilities( + int id: @type_alias ref, + int visibility: @visibility ref +); + +#keyset[id] +type_alias_where_clauses( + int id: @type_alias ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +while_exprs( + unique int id: @while_expr +); + +#keyset[id, index] +while_expr_attrs( + int id: @while_expr ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +while_expr_conditions( + int id: @while_expr ref, + int condition: @expr ref +); diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties new file mode 100644 index 00000000000..2377b8d6e23 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.properties @@ -0,0 +1,29 @@ +description: Renamed the `@adt` union type to `@type_item` and updated its relations +compatibility: full + +adt_derive_macro_expansions.rel: delete + +enum_attrs.rel: delete +enum_generic_param_lists.rel: delete +enum_names.rel: delete +enum_visibilities.rel: delete +enum_where_clauses.rel: delete + +struct_attrs.rel: delete +struct_generic_param_lists.rel: delete +struct_names.rel: delete +struct_visibilities.rel: delete +struct_where_clauses.rel: delete + +union_attrs.rel: delete +union_generic_param_lists.rel: delete +union_names.rel: delete +union_visibilities.rel: delete +union_where_clauses.rel: delete + +type_item_derive_macro_expansions.rel: reorder adt_derive_macro_expansions.rel (@adt id, int index, @macro_items items) id index items +type_item_attrs.rel: run upgrade.ql new_type_item_attrs +type_item_generic_param_lists.rel: run upgrade.ql new_type_item_generic_param_lists +type_item_names.rel: run upgrade.ql new_type_item_names +type_item_visibilities.rel: run upgrade.ql new_type_item_visibilities +type_item_where_clauses.rel: run upgrade.ql new_type_item_where_clauses \ No newline at end of file diff --git a/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql new file mode 100644 index 00000000000..c8e8e956fd8 --- /dev/null +++ b/rust/ql/lib/upgrades/e54d01f67a416b3d6eb7b970f27295097f2cac7f/upgrade.ql @@ -0,0 +1,45 @@ +class Element extends @element { + string toString() { none() } +} + +class Adt extends Element, @adt { } + +class Attr extends Element, @attr { } + +class GenericParamList extends Element, @generic_param_list { } + +class Name extends Element, @name { } + +class Visibility extends Element, @visibility { } + +class WhereClause extends Element, @where_clause { } + +query predicate new_type_item_attrs(Adt adt, int index, Attr attr) { + enum_attrs(adt, index, attr) or + struct_attrs(adt, index, attr) or + union_attrs(adt, index, attr) +} + +query predicate new_type_item_generic_param_lists(Adt adt, GenericParamList g) { + enum_generic_param_lists(adt, g) or + struct_generic_param_lists(adt, g) or + union_generic_param_lists(adt, g) +} + +query predicate new_type_item_names(Adt adt, Name name) { + enum_names(adt, name) or + struct_names(adt, name) or + union_names(adt, name) +} + +query predicate new_type_item_visibilities(Adt adt, Visibility visibility) { + enum_visibilities(adt, visibility) or + struct_visibilities(adt, visibility) or + union_visibilities(adt, visibility) +} + +query predicate new_type_item_where_clauses(Adt adt, WhereClause where_clause) { + enum_where_clauses(adt, where_clause) or + struct_where_clauses(adt, where_clause) or + union_where_clauses(adt, where_clause) +} diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index 61c5c651894..f5e2fdb6407 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.23 + +No user-facing changes. + ## 0.1.22 No user-facing changes. diff --git a/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md b/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md new file mode 100644 index 00000000000..c0ccd758e8d --- /dev/null +++ b/rust/ql/src/change-notes/2025-12-05-exclude-dereference-sinks.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed false positives from the `rust/access-invalid-pointer` query, by only considering dereferences of raw pointers as sinks. diff --git a/rust/ql/src/change-notes/2025-12-10-unused-variable.md b/rust/ql/src/change-notes/2025-12-10-unused-variable.md new file mode 100644 index 00000000000..7391255e608 --- /dev/null +++ b/rust/ql/src/change-notes/2025-12-10-unused-variable.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed common false positives for the `rust/unused-variable` and `rust/unused-value` queries. diff --git a/rust/ql/src/change-notes/released/0.1.23.md b/rust/ql/src/change-notes/released/0.1.23.md new file mode 100644 index 00000000000..3e1036afffa --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.23.md @@ -0,0 +1,3 @@ +## 0.1.23 + +No user-facing changes. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index c9f15f8e72c..484c6d90798 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.22 +lastReleaseVersion: 0.1.23 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 0ff9d3d1f2e..2162add3f35 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.23-dev +version: 0.1.24-dev groups: - rust - queries diff --git a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql index b9bf80c9474..edc22a86409 100644 --- a/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql +++ b/rust/ql/src/queries/security/CWE-825/AccessAfterLifetime.ql @@ -26,18 +26,18 @@ module AccessAfterLifetimeConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node node) { node instanceof AccessAfterLifetime::Source and // exclude cases with sources in macros, since these results are difficult to interpret - not node.asExpr().isFromMacroExpansion() + not node.asExpr().isFromMacroExpansion() and + AccessAfterLifetime::sourceValueScope(node, _, _) } predicate isSink(DataFlow::Node node) { node instanceof AccessAfterLifetime::Sink and - // exclude cases with sinks in macros, since these results are difficult to interpret + // Exclude cases with sinks in macros, since these results are difficult to interpret not node.asExpr().isFromMacroExpansion() and - // include only results inside `unsafe` blocks, as other results tend to be false positives - ( - node.asExpr().getEnclosingBlock*().isUnsafe() or - node.asExpr().getEnclosingCallable().(Function).isUnsafe() - ) + // TODO: Remove this condition if it can be done without negatively + // impacting performance. This condition only include nodes with + // corresponding to an expression. This excludes sinks from models-as-data. + exists(node.asExpr()) } predicate isBarrier(DataFlow::Node barrier) { barrier instanceof AccessAfterLifetime::Barrier } diff --git a/rust/ql/src/queries/telemetry/DatabaseQuality.qll b/rust/ql/src/queries/telemetry/DatabaseQuality.qll index 553783498ae..5f50cdd4c4f 100644 --- a/rust/ql/src/queries/telemetry/DatabaseQuality.qll +++ b/rust/ql/src/queries/telemetry/DatabaseQuality.qll @@ -1,13 +1,14 @@ /** * Provides database quality statistics that are reported by * `rust/telemetry/extractor-information` - * and perhaps warned about by `rust/diagnostics/database-quality`. + * and perhaps warned about by `rust/diagnostic/database-quality`. */ import rust import codeql.util.ReportStats import codeql.rust.elements.internal.CallExprImpl::Impl as CallExprImpl import codeql.rust.internal.TypeInference as TypeInference +import codeql.rust.internal.Type /** * A file that is included in the quality statistics. @@ -20,25 +21,26 @@ private class RelevantFile extends File { } module CallTargetStats implements StatsSig { - // TODO: Take other calls into account - abstract private class CallExprBase extends InvocationExpr { } - - private class CallExprCallExprBase extends CallExpr, CallExprBase { } - - private class MethodCallExprCallExprBase extends MethodCallExpr, CallExprBase { } - - int getNumberOfOk() { - result = - count(CallExprBase c | c.getFile() instanceof RelevantFile and exists(c.getResolvedTarget())) + /** + * A call-like expression that is relevant for call target statistics. + * + * Note that this also includes tuple struct instantiations and tuple + * variant instantiations. + */ + private class RelevantInvocationExpr extends InvocationExpr { + RelevantInvocationExpr() { + this.getFile() instanceof RelevantFile and + not this instanceof CallExprImpl::DynamicCallExpr and + not this = any(Operation o | not o.isOverloaded(_, _, _)) and + not this = any(DerefExpr de | TypeInference::inferType(de.getExpr()) instanceof PtrType) + } } - additional predicate isNotOkCall(CallExprBase c) { - c.getFile() instanceof RelevantFile and - not exists(c.getResolvedTarget()) and - not c instanceof CallExprImpl::DynamicCallExpr - } + int getNumberOfOk() { result = count(RelevantInvocationExpr e | exists(e.getResolvedTarget())) } - int getNumberOfNotOk() { result = count(CallExprBase c | isNotOkCall(c)) } + additional predicate isNotOkCall(RelevantInvocationExpr e) { not exists(e.getResolvedTarget()) } + + int getNumberOfNotOk() { result = count(RelevantInvocationExpr e | isNotOkCall(e)) } string getOkText() { result = "calls with call target" } diff --git a/rust/ql/src/queries/unusedentities/UnusedVariable.qll b/rust/ql/src/queries/unusedentities/UnusedVariable.qll index c0684636e77..744af559dd2 100644 --- a/rust/ql/src/queries/unusedentities/UnusedVariable.qll +++ b/rust/ql/src/queries/unusedentities/UnusedVariable.qll @@ -43,4 +43,10 @@ predicate isAllowableUnused(Variable v) { or // a 'self' variable v.getText() = "self" + or + // a common source of false positives is match arms containing constants + // (typically beginning with a capital letter) that are misrecognized as a + // variable, having not been correctly resolved. + v.getPat().getParentNode() instanceof MatchArm and + v.getText().charAt(0).isUppercase() } diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index 0aa1bda8041..d9843feecc3 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -26,10 +26,6 @@ query predicate getName(Enum x, Name getName) { toBeTested(x) and not x.isUnknown() and getName = x.getName() } -query predicate getVariantList(Enum x, VariantList getVariantList) { - toBeTested(x) and not x.isUnknown() and getVariantList = x.getVariantList() -} - query predicate getVisibility(Enum x, Visibility getVisibility) { toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() } @@ -37,3 +33,7 @@ query predicate getVisibility(Enum x, Visibility getVisibility) { query predicate getWhereClause(Enum x, WhereClause getWhereClause) { toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() } + +query predicate getVariantList(Enum x, VariantList getVariantList) { + toBeTested(x) and not x.isUnknown() and getVariantList = x.getVariantList() +} diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index 25a980701c5..a4cf01bbfdc 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -18,10 +18,6 @@ query predicate getAttr(Struct x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) } -query predicate getFieldList(Struct x, FieldList getFieldList) { - toBeTested(x) and not x.isUnknown() and getFieldList = x.getFieldList() -} - query predicate getGenericParamList(Struct x, GenericParamList getGenericParamList) { toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() } @@ -37,3 +33,7 @@ query predicate getVisibility(Struct x, Visibility getVisibility) { query predicate getWhereClause(Struct x, WhereClause getWhereClause) { toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() } + +query predicate getFieldList(Struct x, FieldList getFieldList) { + toBeTested(x) and not x.isUnknown() and getFieldList = x.getFieldList() +} diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index 9c555d1e590..922e8ef4a59 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -26,10 +26,6 @@ query predicate getName(Union x, Name getName) { toBeTested(x) and not x.isUnknown() and getName = x.getName() } -query predicate getStructFieldList(Union x, StructFieldList getStructFieldList) { - toBeTested(x) and not x.isUnknown() and getStructFieldList = x.getStructFieldList() -} - query predicate getVisibility(Union x, Visibility getVisibility) { toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() } @@ -37,3 +33,7 @@ query predicate getVisibility(Union x, Visibility getVisibility) { query predicate getWhereClause(Union x, WhereClause getWhereClause) { toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() } + +query predicate getStructFieldList(Union x, StructFieldList getStructFieldList) { + toBeTested(x) and not x.isUnknown() and getStructFieldList = x.getStructFieldList() +} diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 141cfc355b9..00000000000 --- a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleCallTargets -| proc_macro.rs:44:27:44:30 | ...::to_tokens(...) | diff --git a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected index e50dc4d5274..5d43ff532fd 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected @@ -699,6 +699,7 @@ macro_expansion.rs: # 76| getSegment(): [PathSegment] i32 # 76| getIdentifier(): [NameRef] i32 # 78| getItem(16): [Struct] struct MyStruct +# 78| getName(): [Name] MyStruct # 78| getFieldList(): [StructFieldList] StructFieldList # 79| getField(0): [StructField] field: ... # 79| getName(): [Name] field @@ -712,7 +713,6 @@ macro_expansion.rs: # 79| getPath(): [Path] i32 # 79| getSegment(): [PathSegment] i32 # 79| getIdentifier(): [NameRef] i32 -# 78| getName(): [Name] MyStruct # 83| getItem(17): [Struct] struct MyDerive # 84| getDeriveMacroExpansion(0): [MacroItems] MacroItems # 84| getItem(0): [Impl] impl ...::Debug for MyDerive::<...> { ... } @@ -808,6 +808,7 @@ macro_expansion.rs: # 83| getSegment(): [PathSegment] derive # 83| getIdentifier(): [NameRef] derive # 83| getTokenTree(): [TokenTree] TokenTree +# 84| getName(): [Name] MyDerive # 84| getFieldList(): [StructFieldList] StructFieldList # 85| getField(0): [StructField] field: usize # 85| getName(): [Name] field @@ -815,7 +816,6 @@ macro_expansion.rs: # 85| getPath(): [Path] usize # 85| getSegment(): [PathSegment] usize # 85| getIdentifier(): [NameRef] usize -# 84| getName(): [Name] MyDerive # 88| getItem(18): [Enum] enum MyDeriveEnum # 89| getDeriveMacroExpansion(0): [MacroItems] MacroItems # 89| getItem(0): [Impl] impl ...::PartialEq for MyDeriveEnum::<...> { ... } diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.ql b/rust/ql/test/extractor-tests/macro-expansion/test.ql index 7d97ea6a10f..6372dc2e93f 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.ql +++ b/rust/ql/test/extractor-tests/macro-expansion/test.ql @@ -5,7 +5,7 @@ query predicate attribute_macros(Item i, int index, Item expanded) { i.fromSource() and expanded = i.getAttributeMacroExpansion().getItem(index) } -query predicate derive_macros(Adt i, int index, int subIndex, Item expanded) { +query predicate derive_macros(TypeItem i, int index, int subIndex, Item expanded) { i.fromSource() and expanded = i.getDeriveMacroExpansion(index).getItem(subIndex) } diff --git a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected index 9a3c906ac90..343a33146d2 100644 --- a/rust/ql/test/library-tests/dataflow/global/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/global/inline-flow.expected @@ -1,6 +1,7 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | -| 2 | Summary: futures_executor::local_pool::block_on; Argument[0]; ReturnValue; value | +| 2 | Summary: <_ as core::ops::arith::Mul>::mul; Argument[self]; ReturnValue; taint | +| 3 | Summary: futures_executor::local_pool::block_on; Argument[0]; ReturnValue; value | edges | main.rs:12:28:14:1 | { ... } | main.rs:17:13:17:23 | get_data(...) | provenance | | | main.rs:13:5:13:13 | source(...) | main.rs:12:28:14:1 | { ... } | provenance | | @@ -48,172 +49,176 @@ edges | main.rs:86:26:86:26 | a | main.rs:82:21:82:26 | ...: i64 | provenance | | | main.rs:86:26:86:26 | a | main.rs:86:13:86:27 | pass_through(...) | provenance | | | main.rs:104:22:104:27 | ...: i64 | main.rs:105:14:105:14 | n | provenance | | -| main.rs:108:30:110:5 | { ... } | main.rs:138:13:138:25 | mn.get_data() | provenance | | -| main.rs:109:35:109:43 | source(...) | main.rs:108:30:110:5 | { ... } | provenance | | -| main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | provenance | | -| main.rs:118:28:118:33 | ...: i64 | main.rs:119:14:119:14 | n | provenance | | -| main.rs:122:36:124:5 | { ... } | main.rs:132:13:132:30 | x.get_data_trait() | provenance | | -| main.rs:122:36:124:5 | { ... } | main.rs:142:13:142:31 | mn.get_data_trait() | provenance | | -| main.rs:123:35:123:44 | source(...) | main.rs:122:36:124:5 | { ... } | provenance | | -| main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | provenance | | -| main.rs:132:9:132:9 | a | main.rs:133:10:133:10 | a | provenance | | -| main.rs:132:13:132:30 | x.get_data_trait() | main.rs:132:9:132:9 | a | provenance | | -| main.rs:138:9:138:9 | a | main.rs:139:10:139:10 | a | provenance | | -| main.rs:138:13:138:25 | mn.get_data() | main.rs:138:9:138:9 | a | provenance | | -| main.rs:142:9:142:9 | a | main.rs:143:10:143:10 | a | provenance | | -| main.rs:142:13:142:31 | mn.get_data_trait() | main.rs:142:9:142:9 | a | provenance | | -| main.rs:149:9:149:9 | a | main.rs:150:21:150:21 | a | provenance | | -| main.rs:149:13:149:22 | source(...) | main.rs:149:9:149:9 | a | provenance | | -| main.rs:150:21:150:21 | a | main.rs:118:28:118:33 | ...: i64 | provenance | | -| main.rs:155:9:155:9 | a | main.rs:156:16:156:16 | a | provenance | | -| main.rs:155:13:155:21 | source(...) | main.rs:155:9:155:9 | a | provenance | | -| main.rs:156:16:156:16 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | -| main.rs:159:9:159:9 | a | main.rs:160:22:160:22 | a | provenance | | -| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | a | provenance | | -| main.rs:160:22:160:22 | a | main.rs:118:28:118:33 | ...: i64 | provenance | | -| main.rs:166:9:166:9 | a | main.rs:167:34:167:34 | a | provenance | | -| main.rs:166:13:166:22 | source(...) | main.rs:166:9:166:9 | a | provenance | | -| main.rs:167:9:167:9 | b | main.rs:168:10:168:10 | b | provenance | | -| main.rs:167:13:167:35 | x.data_through_trait(...) | main.rs:167:9:167:9 | b | provenance | | -| main.rs:167:34:167:34 | a | main.rs:126:33:126:38 | ...: i64 | provenance | | -| main.rs:167:34:167:34 | a | main.rs:167:13:167:35 | x.data_through_trait(...) | provenance | | -| main.rs:173:9:173:9 | a | main.rs:174:29:174:29 | a | provenance | | -| main.rs:173:13:173:21 | source(...) | main.rs:173:9:173:9 | a | provenance | | -| main.rs:174:9:174:9 | b | main.rs:175:10:175:10 | b | provenance | | -| main.rs:174:13:174:30 | mn.data_through(...) | main.rs:174:9:174:9 | b | provenance | | -| main.rs:174:29:174:29 | a | main.rs:112:27:112:32 | ...: i64 | provenance | | -| main.rs:174:29:174:29 | a | main.rs:174:13:174:30 | mn.data_through(...) | provenance | | -| main.rs:178:9:178:9 | a | main.rs:179:35:179:35 | a | provenance | | -| main.rs:178:13:178:22 | source(...) | main.rs:178:9:178:9 | a | provenance | | -| main.rs:179:9:179:9 | b | main.rs:180:10:180:10 | b | provenance | | -| main.rs:179:13:179:36 | mn.data_through_trait(...) | main.rs:179:9:179:9 | b | provenance | | -| main.rs:179:35:179:35 | a | main.rs:126:33:126:38 | ...: i64 | provenance | | -| main.rs:179:35:179:35 | a | main.rs:179:13:179:36 | mn.data_through_trait(...) | provenance | | -| main.rs:187:9:187:9 | a | main.rs:188:25:188:25 | a | provenance | | -| main.rs:187:13:187:21 | source(...) | main.rs:187:9:187:9 | a | provenance | | -| main.rs:188:25:188:25 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | -| main.rs:193:9:193:9 | a | main.rs:194:38:194:38 | a | provenance | | -| main.rs:193:13:193:22 | source(...) | main.rs:193:9:193:9 | a | provenance | | -| main.rs:194:9:194:9 | b | main.rs:195:10:195:10 | b | provenance | | -| main.rs:194:13:194:39 | ...::data_through(...) | main.rs:194:9:194:9 | b | provenance | | -| main.rs:194:38:194:38 | a | main.rs:112:27:112:32 | ...: i64 | provenance | | -| main.rs:194:38:194:38 | a | main.rs:194:13:194:39 | ...::data_through(...) | provenance | | -| main.rs:206:12:206:17 | ...: i64 | main.rs:207:24:207:24 | n | provenance | | -| main.rs:207:9:207:26 | MyInt {...} [MyInt] | main.rs:206:28:208:5 | { ... } [MyInt] | provenance | | -| main.rs:207:24:207:24 | n | main.rs:207:9:207:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:212:9:212:9 | n [MyInt] | main.rs:213:9:213:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:212:13:212:34 | ...::new(...) [MyInt] | main.rs:212:9:212:9 | n [MyInt] | provenance | | -| main.rs:212:24:212:33 | source(...) | main.rs:206:12:206:17 | ...: i64 | provenance | | -| main.rs:212:24:212:33 | source(...) | main.rs:212:13:212:34 | ...::new(...) [MyInt] | provenance | | -| main.rs:213:9:213:26 | MyInt {...} [MyInt] | main.rs:213:24:213:24 | m | provenance | | -| main.rs:213:24:213:24 | m | main.rs:214:10:214:10 | m | provenance | | -| main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:222:24:222:27 | self [MyInt] | provenance | | -| main.rs:222:9:222:35 | MyInt {...} [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | provenance | | -| main.rs:222:24:222:27 | self [MyInt] | main.rs:222:24:222:33 | self.value | provenance | | -| main.rs:222:24:222:33 | self.value | main.rs:222:9:222:35 | MyInt {...} [MyInt] | provenance | | -| main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:228:22:228:24 | rhs [MyInt] | provenance | | -| main.rs:228:9:228:12 | [post] self [&ref, MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | provenance | | -| main.rs:228:22:228:24 | rhs [MyInt] | main.rs:228:22:228:30 | rhs.value | provenance | | -| main.rs:228:22:228:30 | rhs.value | main.rs:228:9:228:12 | [post] self [&ref, MyInt] | provenance | | -| main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | main.rs:236:12:236:15 | self [&ref, MyInt] | provenance | | -| main.rs:236:9:236:22 | &... [&ref] | main.rs:235:38:237:5 | { ... } [&ref] | provenance | | -| main.rs:236:10:236:22 | ... .value | main.rs:236:9:236:22 | &... [&ref] | provenance | | -| main.rs:236:11:236:15 | * ... [MyInt] | main.rs:236:10:236:22 | ... .value | provenance | | -| main.rs:236:12:236:15 | self [&ref, MyInt] | main.rs:236:11:236:15 | * ... [MyInt] | provenance | MaD:1 | -| main.rs:242:9:242:9 | a [MyInt] | main.rs:244:13:244:13 | a [MyInt] | provenance | | -| main.rs:242:13:242:38 | MyInt {...} [MyInt] | main.rs:242:9:242:9 | a [MyInt] | provenance | | -| main.rs:242:28:242:36 | source(...) | main.rs:242:13:242:38 | MyInt {...} [MyInt] | provenance | | -| main.rs:244:9:244:9 | c [MyInt] | main.rs:245:10:245:10 | c [MyInt] | provenance | | -| main.rs:244:13:244:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | provenance | | -| main.rs:244:13:244:13 | a [MyInt] | main.rs:244:13:244:17 | ... + ... [MyInt] | provenance | | -| main.rs:244:13:244:17 | ... + ... [MyInt] | main.rs:244:9:244:9 | c [MyInt] | provenance | | -| main.rs:245:10:245:10 | c [MyInt] | main.rs:245:10:245:16 | c.value | provenance | | -| main.rs:252:9:252:9 | a [MyInt] | main.rs:254:13:254:13 | a [MyInt] | provenance | | -| main.rs:252:13:252:38 | MyInt {...} [MyInt] | main.rs:252:9:252:9 | a [MyInt] | provenance | | -| main.rs:252:28:252:36 | source(...) | main.rs:252:13:252:38 | MyInt {...} [MyInt] | provenance | | -| main.rs:254:9:254:9 | d [MyInt] | main.rs:255:10:255:10 | d [MyInt] | provenance | | -| main.rs:254:13:254:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | provenance | | -| main.rs:254:13:254:13 | a [MyInt] | main.rs:254:13:254:20 | a.add(...) [MyInt] | provenance | | -| main.rs:254:13:254:20 | a.add(...) [MyInt] | main.rs:254:9:254:9 | d [MyInt] | provenance | | -| main.rs:255:10:255:10 | d [MyInt] | main.rs:255:10:255:16 | d.value | provenance | | -| main.rs:259:9:259:9 | b [MyInt] | main.rs:261:35:261:35 | b [MyInt] | provenance | | -| main.rs:259:13:259:39 | MyInt {...} [MyInt] | main.rs:259:9:259:9 | b [MyInt] | provenance | | -| main.rs:259:28:259:37 | source(...) | main.rs:259:13:259:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | main.rs:261:32:261:32 | [post] a [MyInt] | provenance | | -| main.rs:261:32:261:32 | [post] a [MyInt] | main.rs:262:10:262:10 | a [MyInt] | provenance | | -| main.rs:261:35:261:35 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | provenance | | -| main.rs:261:35:261:35 | b [MyInt] | main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | provenance | | -| main.rs:262:10:262:10 | a [MyInt] | main.rs:262:10:262:16 | a.value | provenance | | -| main.rs:265:9:265:9 | b [MyInt] | main.rs:266:10:266:10 | b [MyInt] | provenance | | -| main.rs:265:13:265:39 | MyInt {...} [MyInt] | main.rs:265:9:265:9 | b [MyInt] | provenance | | -| main.rs:265:28:265:37 | source(...) | main.rs:265:13:265:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:266:10:266:10 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | provenance | | -| main.rs:266:10:266:10 | b [MyInt] | main.rs:267:10:267:10 | a [MyInt] | provenance | | -| main.rs:267:10:267:10 | a [MyInt] | main.rs:267:10:267:16 | a.value | provenance | | -| main.rs:270:9:270:9 | a [MyInt] | main.rs:272:28:272:28 | a [MyInt] | provenance | | -| main.rs:270:13:270:39 | MyInt {...} [MyInt] | main.rs:270:9:270:9 | a [MyInt] | provenance | | -| main.rs:270:28:270:37 | source(...) | main.rs:270:13:270:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:272:9:272:9 | c | main.rs:273:10:273:10 | c | provenance | | -| main.rs:272:13:272:29 | * ... | main.rs:272:9:272:9 | c | provenance | | -| main.rs:272:14:272:29 | ...::deref(...) [&ref] | main.rs:272:13:272:29 | * ... | provenance | MaD:1 | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | provenance | | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | main.rs:272:14:272:29 | ...::deref(...) [&ref] | provenance | MaD:1 | -| main.rs:272:28:272:28 | a [MyInt] | main.rs:272:27:272:28 | &a [&ref, MyInt] | provenance | | -| main.rs:275:9:275:9 | a [MyInt] | main.rs:276:14:276:14 | a [MyInt] | provenance | | -| main.rs:275:13:275:39 | MyInt {...} [MyInt] | main.rs:275:9:275:9 | a [MyInt] | provenance | | +| main.rs:108:30:114:5 | { ... } | main.rs:154:13:154:25 | mn.get_data() | provenance | | +| main.rs:112:13:112:21 | source(...) | main.rs:108:30:114:5 | { ... } | provenance | | +| main.rs:116:27:116:32 | ...: i64 | main.rs:116:42:122:5 | { ... } | provenance | | +| main.rs:126:28:126:33 | ...: i64 | main.rs:127:14:127:14 | n | provenance | | +| main.rs:130:36:136:5 | { ... } | main.rs:148:13:148:30 | x.get_data_trait() | provenance | | +| main.rs:130:36:136:5 | { ... } | main.rs:158:13:158:31 | mn.get_data_trait() | provenance | | +| main.rs:134:13:134:22 | source(...) | main.rs:130:36:136:5 | { ... } | provenance | | +| main.rs:138:33:138:38 | ...: i64 | main.rs:138:48:144:5 | { ... } | provenance | | +| main.rs:148:9:148:9 | a | main.rs:149:10:149:10 | a | provenance | | +| main.rs:148:13:148:30 | x.get_data_trait() | main.rs:148:9:148:9 | a | provenance | | +| main.rs:154:9:154:9 | a | main.rs:155:10:155:10 | a | provenance | | +| main.rs:154:13:154:25 | mn.get_data() | main.rs:154:9:154:9 | a | provenance | | +| main.rs:158:9:158:9 | a | main.rs:159:10:159:10 | a | provenance | | +| main.rs:158:13:158:31 | mn.get_data_trait() | main.rs:158:9:158:9 | a | provenance | | +| main.rs:165:9:165:9 | a | main.rs:166:21:166:21 | a | provenance | | +| main.rs:165:13:165:22 | source(...) | main.rs:165:9:165:9 | a | provenance | | +| main.rs:166:21:166:21 | a | main.rs:126:28:126:33 | ...: i64 | provenance | | +| main.rs:171:9:171:9 | a | main.rs:172:16:172:16 | a | provenance | | +| main.rs:171:13:171:21 | source(...) | main.rs:171:9:171:9 | a | provenance | | +| main.rs:172:16:172:16 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | +| main.rs:175:9:175:9 | a | main.rs:176:22:176:22 | a | provenance | | +| main.rs:175:13:175:22 | source(...) | main.rs:175:9:175:9 | a | provenance | | +| main.rs:176:22:176:22 | a | main.rs:126:28:126:33 | ...: i64 | provenance | | +| main.rs:182:9:182:9 | a | main.rs:183:34:183:34 | a | provenance | | +| main.rs:182:13:182:22 | source(...) | main.rs:182:9:182:9 | a | provenance | | +| main.rs:183:9:183:9 | b | main.rs:184:10:184:10 | b | provenance | | +| main.rs:183:13:183:35 | x.data_through_trait(...) | main.rs:183:9:183:9 | b | provenance | | +| main.rs:183:34:183:34 | a | main.rs:138:33:138:38 | ...: i64 | provenance | | +| main.rs:183:34:183:34 | a | main.rs:183:13:183:35 | x.data_through_trait(...) | provenance | | +| main.rs:189:9:189:9 | a | main.rs:190:29:190:29 | a | provenance | | +| main.rs:189:13:189:21 | source(...) | main.rs:189:9:189:9 | a | provenance | | +| main.rs:190:9:190:9 | b | main.rs:191:10:191:10 | b | provenance | | +| main.rs:190:13:190:30 | mn.data_through(...) | main.rs:190:9:190:9 | b | provenance | | +| main.rs:190:29:190:29 | a | main.rs:116:27:116:32 | ...: i64 | provenance | | +| main.rs:190:29:190:29 | a | main.rs:190:13:190:30 | mn.data_through(...) | provenance | | +| main.rs:194:9:194:9 | a | main.rs:195:35:195:35 | a | provenance | | +| main.rs:194:13:194:22 | source(...) | main.rs:194:9:194:9 | a | provenance | | +| main.rs:195:9:195:9 | b | main.rs:196:10:196:10 | b | provenance | | +| main.rs:195:13:195:36 | mn.data_through_trait(...) | main.rs:195:9:195:9 | b | provenance | | +| main.rs:195:35:195:35 | a | main.rs:138:33:138:38 | ...: i64 | provenance | | +| main.rs:195:35:195:35 | a | main.rs:195:13:195:36 | mn.data_through_trait(...) | provenance | | +| main.rs:203:9:203:9 | a | main.rs:204:25:204:25 | a | provenance | | +| main.rs:203:13:203:21 | source(...) | main.rs:203:9:203:9 | a | provenance | | +| main.rs:204:25:204:25 | a | main.rs:104:22:104:27 | ...: i64 | provenance | | +| main.rs:209:9:209:9 | a | main.rs:210:38:210:38 | a | provenance | | +| main.rs:209:13:209:22 | source(...) | main.rs:209:9:209:9 | a | provenance | | +| main.rs:210:9:210:9 | b | main.rs:211:10:211:10 | b | provenance | | +| main.rs:210:13:210:39 | ...::data_through(...) | main.rs:210:9:210:9 | b | provenance | | +| main.rs:210:38:210:38 | a | main.rs:116:27:116:32 | ...: i64 | provenance | | +| main.rs:210:38:210:38 | a | main.rs:210:13:210:39 | ...::data_through(...) | provenance | | +| main.rs:222:12:222:17 | ...: i64 | main.rs:223:24:223:24 | n | provenance | | +| main.rs:223:9:223:26 | MyInt {...} [MyInt] | main.rs:222:28:224:5 | { ... } [MyInt] | provenance | | +| main.rs:223:24:223:24 | n | main.rs:223:9:223:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:228:9:228:9 | n [MyInt] | main.rs:229:9:229:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:228:13:228:34 | ...::new(...) [MyInt] | main.rs:228:9:228:9 | n [MyInt] | provenance | | +| main.rs:228:24:228:33 | source(...) | main.rs:222:12:222:17 | ...: i64 | provenance | | +| main.rs:228:24:228:33 | source(...) | main.rs:228:13:228:34 | ...::new(...) [MyInt] | provenance | | +| main.rs:229:9:229:26 | MyInt {...} [MyInt] | main.rs:229:24:229:24 | m | provenance | | +| main.rs:229:24:229:24 | m | main.rs:230:10:230:10 | m | provenance | | +| main.rs:236:12:236:15 | SelfParam [MyInt] | main.rs:238:24:238:27 | self [MyInt] | provenance | | +| main.rs:238:9:238:35 | MyInt {...} [MyInt] | main.rs:236:42:239:5 | { ... } [MyInt] | provenance | | +| main.rs:238:24:238:27 | self [MyInt] | main.rs:238:24:238:33 | self.value | provenance | | +| main.rs:238:24:238:33 | self.value | main.rs:238:9:238:35 | MyInt {...} [MyInt] | provenance | | +| main.rs:243:30:243:39 | ...: MyInt [MyInt] | main.rs:244:22:244:24 | rhs [MyInt] | provenance | | +| main.rs:244:9:244:12 | [post] self [&ref, MyInt] | main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | provenance | | +| main.rs:244:22:244:24 | rhs [MyInt] | main.rs:244:22:244:30 | rhs.value | provenance | | +| main.rs:244:22:244:30 | rhs.value | main.rs:244:9:244:12 | [post] self [&ref, MyInt] | provenance | | +| main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | main.rs:252:12:252:15 | self [&ref, MyInt] | provenance | | +| main.rs:252:9:252:22 | &... [&ref] | main.rs:251:38:253:5 | { ... } [&ref] | provenance | | +| main.rs:252:10:252:22 | ... .value | main.rs:252:9:252:22 | &... [&ref] | provenance | | +| main.rs:252:11:252:15 | * ... [MyInt] | main.rs:252:10:252:22 | ... .value | provenance | | +| main.rs:252:12:252:15 | self [&ref, MyInt] | main.rs:252:11:252:15 | * ... [MyInt] | provenance | MaD:1 | +| main.rs:258:9:258:9 | a [MyInt] | main.rs:260:13:260:13 | a [MyInt] | provenance | | +| main.rs:258:13:258:38 | MyInt {...} [MyInt] | main.rs:258:9:258:9 | a [MyInt] | provenance | | +| main.rs:258:28:258:36 | source(...) | main.rs:258:13:258:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:260:9:260:9 | c [MyInt] | main.rs:261:10:261:10 | c [MyInt] | provenance | | +| main.rs:260:13:260:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | provenance | | +| main.rs:260:13:260:13 | a [MyInt] | main.rs:260:13:260:17 | ... + ... [MyInt] | provenance | | +| main.rs:260:13:260:17 | ... + ... [MyInt] | main.rs:260:9:260:9 | c [MyInt] | provenance | | +| main.rs:261:10:261:10 | c [MyInt] | main.rs:261:10:261:16 | c.value | provenance | | +| main.rs:268:9:268:9 | a [MyInt] | main.rs:270:13:270:13 | a [MyInt] | provenance | | +| main.rs:268:13:268:38 | MyInt {...} [MyInt] | main.rs:268:9:268:9 | a [MyInt] | provenance | | +| main.rs:268:28:268:36 | source(...) | main.rs:268:13:268:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:270:9:270:9 | d [MyInt] | main.rs:271:10:271:10 | d [MyInt] | provenance | | +| main.rs:270:13:270:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | provenance | | +| main.rs:270:13:270:13 | a [MyInt] | main.rs:270:13:270:20 | a.add(...) [MyInt] | provenance | | +| main.rs:270:13:270:20 | a.add(...) [MyInt] | main.rs:270:9:270:9 | d [MyInt] | provenance | | +| main.rs:271:10:271:10 | d [MyInt] | main.rs:271:10:271:16 | d.value | provenance | | +| main.rs:275:9:275:9 | b [MyInt] | main.rs:277:35:277:35 | b [MyInt] | provenance | | +| main.rs:275:13:275:39 | MyInt {...} [MyInt] | main.rs:275:9:275:9 | b [MyInt] | provenance | | | main.rs:275:28:275:37 | source(...) | main.rs:275:13:275:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:276:9:276:9 | c | main.rs:277:10:277:10 | c | provenance | | -| main.rs:276:13:276:14 | * ... | main.rs:276:9:276:9 | c | provenance | | -| main.rs:276:14:276:14 | a [MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | provenance | | -| main.rs:276:14:276:14 | a [MyInt] | main.rs:276:13:276:14 | * ... | provenance | MaD:1 | -| main.rs:289:18:289:21 | SelfParam [MyInt] | main.rs:289:48:291:5 | { ... } [MyInt] | provenance | | -| main.rs:293:26:293:37 | ...: MyInt [MyInt] | main.rs:293:49:295:5 | { ... } [MyInt] | provenance | | -| main.rs:299:9:299:9 | a [MyInt] | main.rs:301:50:301:50 | a [MyInt] | provenance | | -| main.rs:299:13:299:38 | MyInt {...} [MyInt] | main.rs:299:9:299:9 | a [MyInt] | provenance | | -| main.rs:299:28:299:36 | source(...) | main.rs:299:13:299:38 | MyInt {...} [MyInt] | provenance | | -| main.rs:301:9:301:26 | MyInt {...} [MyInt] | main.rs:301:24:301:24 | c | provenance | | -| main.rs:301:24:301:24 | c | main.rs:302:10:302:10 | c | provenance | | -| main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | main.rs:301:9:301:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:301:50:301:50 | a [MyInt] | main.rs:289:18:289:21 | SelfParam [MyInt] | provenance | | -| main.rs:301:50:301:50 | a [MyInt] | main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | provenance | | -| main.rs:305:9:305:9 | b [MyInt] | main.rs:306:55:306:55 | b [MyInt] | provenance | | -| main.rs:305:13:305:39 | MyInt {...} [MyInt] | main.rs:305:9:305:9 | b [MyInt] | provenance | | -| main.rs:305:28:305:37 | source(...) | main.rs:305:13:305:39 | MyInt {...} [MyInt] | provenance | | -| main.rs:306:9:306:26 | MyInt {...} [MyInt] | main.rs:306:24:306:24 | c | provenance | | -| main.rs:306:24:306:24 | c | main.rs:307:10:307:10 | c | provenance | | -| main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | main.rs:306:9:306:26 | MyInt {...} [MyInt] | provenance | | -| main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | provenance | | -| main.rs:306:55:306:55 | b [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | provenance | | -| main.rs:315:32:319:1 | { ... } | main.rs:334:41:334:54 | async_source(...) | provenance | | -| main.rs:316:9:316:9 | a | main.rs:315:32:319:1 | { ... } | provenance | | -| main.rs:316:9:316:9 | a | main.rs:317:10:317:10 | a | provenance | | -| main.rs:316:13:316:21 | source(...) | main.rs:316:9:316:9 | a | provenance | | -| main.rs:326:13:326:13 | c | main.rs:327:14:327:14 | c | provenance | | -| main.rs:326:17:326:25 | source(...) | main.rs:326:13:326:13 | c | provenance | | -| main.rs:334:9:334:9 | a | main.rs:335:10:335:10 | a | provenance | | -| main.rs:334:13:334:55 | ...::block_on(...) | main.rs:334:9:334:9 | a | provenance | | -| main.rs:334:41:334:54 | async_source(...) | main.rs:334:13:334:55 | ...::block_on(...) | provenance | MaD:2 | -| main.rs:346:44:348:9 | { ... } | main.rs:383:18:383:38 | t.get_double_number() | provenance | | -| main.rs:346:44:348:9 | { ... } | main.rs:387:18:387:50 | ...::get_double_number(...) | provenance | | -| main.rs:347:13:347:29 | self.get_number() | main.rs:346:44:348:9 | { ... } | provenance | | -| main.rs:350:33:352:9 | { ... } | main.rs:391:18:391:37 | ...::get_default(...) | provenance | | -| main.rs:351:13:351:21 | source(...) | main.rs:350:33:352:9 | { ... } | provenance | | -| main.rs:358:37:360:9 | { ... } | main.rs:347:13:347:29 | self.get_number() | provenance | | -| main.rs:359:13:359:21 | source(...) | main.rs:358:37:360:9 | { ... } | provenance | | -| main.rs:370:44:372:9 | { ... } | main.rs:395:18:395:38 | i.get_double_number() | provenance | | -| main.rs:371:13:371:22 | source(...) | main.rs:370:44:372:9 | { ... } | provenance | | -| main.rs:374:33:376:9 | { ... } | main.rs:398:18:398:41 | ...::get_default(...) | provenance | | -| main.rs:375:13:375:21 | source(...) | main.rs:374:33:376:9 | { ... } | provenance | | -| main.rs:383:13:383:14 | n1 | main.rs:384:14:384:15 | n1 | provenance | | -| main.rs:383:18:383:38 | t.get_double_number() | main.rs:383:13:383:14 | n1 | provenance | | -| main.rs:387:13:387:14 | n2 | main.rs:388:14:388:15 | n2 | provenance | | -| main.rs:387:18:387:50 | ...::get_double_number(...) | main.rs:387:13:387:14 | n2 | provenance | | -| main.rs:391:13:391:14 | n3 | main.rs:392:14:392:15 | n3 | provenance | | -| main.rs:391:18:391:37 | ...::get_default(...) | main.rs:391:13:391:14 | n3 | provenance | | -| main.rs:395:13:395:14 | n4 | main.rs:396:14:396:15 | n4 | provenance | | -| main.rs:395:18:395:38 | i.get_double_number() | main.rs:395:13:395:14 | n4 | provenance | | -| main.rs:398:13:398:14 | n5 | main.rs:399:14:399:15 | n5 | provenance | | -| main.rs:398:18:398:41 | ...::get_default(...) | main.rs:398:13:398:14 | n5 | provenance | | +| main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | main.rs:277:32:277:32 | [post] a [MyInt] | provenance | | +| main.rs:277:32:277:32 | [post] a [MyInt] | main.rs:278:10:278:10 | a [MyInt] | provenance | | +| main.rs:277:35:277:35 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | provenance | | +| main.rs:277:35:277:35 | b [MyInt] | main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | provenance | | +| main.rs:278:10:278:10 | a [MyInt] | main.rs:278:10:278:16 | a.value | provenance | | +| main.rs:281:9:281:9 | b [MyInt] | main.rs:282:10:282:10 | b [MyInt] | provenance | | +| main.rs:281:13:281:39 | MyInt {...} [MyInt] | main.rs:281:9:281:9 | b [MyInt] | provenance | | +| main.rs:281:28:281:37 | source(...) | main.rs:281:13:281:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:282:10:282:10 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | provenance | | +| main.rs:282:10:282:10 | b [MyInt] | main.rs:283:10:283:10 | a [MyInt] | provenance | | +| main.rs:283:10:283:10 | a [MyInt] | main.rs:283:10:283:16 | a.value | provenance | | +| main.rs:286:9:286:9 | a [MyInt] | main.rs:288:28:288:28 | a [MyInt] | provenance | | +| main.rs:286:13:286:39 | MyInt {...} [MyInt] | main.rs:286:9:286:9 | a [MyInt] | provenance | | +| main.rs:286:28:286:37 | source(...) | main.rs:286:13:286:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:288:9:288:9 | c | main.rs:289:10:289:10 | c | provenance | | +| main.rs:288:13:288:29 | * ... | main.rs:288:9:288:9 | c | provenance | | +| main.rs:288:14:288:29 | ...::deref(...) [&ref] | main.rs:288:13:288:29 | * ... | provenance | MaD:1 | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | provenance | | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | main.rs:288:14:288:29 | ...::deref(...) [&ref] | provenance | MaD:1 | +| main.rs:288:28:288:28 | a [MyInt] | main.rs:288:27:288:28 | &a [&ref, MyInt] | provenance | | +| main.rs:291:9:291:9 | a [MyInt] | main.rs:292:14:292:14 | a [MyInt] | provenance | | +| main.rs:291:13:291:39 | MyInt {...} [MyInt] | main.rs:291:9:291:9 | a [MyInt] | provenance | | +| main.rs:291:28:291:37 | source(...) | main.rs:291:13:291:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:292:9:292:9 | c | main.rs:293:10:293:10 | c | provenance | | +| main.rs:292:13:292:14 | * ... | main.rs:292:9:292:9 | c | provenance | | +| main.rs:292:14:292:14 | a [MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | provenance | | +| main.rs:292:14:292:14 | a [MyInt] | main.rs:292:13:292:14 | * ... | provenance | MaD:1 | +| main.rs:309:18:309:21 | SelfParam [MyInt] | main.rs:309:48:311:5 | { ... } [MyInt] | provenance | | +| main.rs:313:26:313:37 | ...: MyInt [MyInt] | main.rs:313:49:315:5 | { ... } [MyInt] | provenance | | +| main.rs:319:9:319:9 | a [MyInt] | main.rs:321:50:321:50 | a [MyInt] | provenance | | +| main.rs:319:13:319:38 | MyInt {...} [MyInt] | main.rs:319:9:319:9 | a [MyInt] | provenance | | +| main.rs:319:28:319:36 | source(...) | main.rs:319:13:319:38 | MyInt {...} [MyInt] | provenance | | +| main.rs:321:9:321:26 | MyInt {...} [MyInt] | main.rs:321:24:321:24 | c | provenance | | +| main.rs:321:24:321:24 | c | main.rs:322:10:322:10 | c | provenance | | +| main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | main.rs:321:9:321:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:321:50:321:50 | a [MyInt] | main.rs:309:18:309:21 | SelfParam [MyInt] | provenance | | +| main.rs:321:50:321:50 | a [MyInt] | main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | provenance | | +| main.rs:325:9:325:9 | b [MyInt] | main.rs:326:55:326:55 | b [MyInt] | provenance | | +| main.rs:325:13:325:39 | MyInt {...} [MyInt] | main.rs:325:9:325:9 | b [MyInt] | provenance | | +| main.rs:325:28:325:37 | source(...) | main.rs:325:13:325:39 | MyInt {...} [MyInt] | provenance | | +| main.rs:326:9:326:26 | MyInt {...} [MyInt] | main.rs:326:24:326:24 | c | provenance | | +| main.rs:326:24:326:24 | c | main.rs:327:10:327:10 | c | provenance | | +| main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | main.rs:326:9:326:26 | MyInt {...} [MyInt] | provenance | | +| main.rs:326:55:326:55 | b [MyInt] | main.rs:313:26:313:37 | ...: MyInt [MyInt] | provenance | | +| main.rs:326:55:326:55 | b [MyInt] | main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | provenance | | +| main.rs:335:32:339:1 | { ... } | main.rs:342:13:342:26 | async_source(...) | provenance | | +| main.rs:335:32:339:1 | { ... } | main.rs:354:41:354:54 | async_source(...) | provenance | | +| main.rs:336:9:336:9 | a | main.rs:335:32:339:1 | { ... } | provenance | | +| main.rs:336:9:336:9 | a | main.rs:337:10:337:10 | a | provenance | | +| main.rs:336:13:336:21 | source(...) | main.rs:336:9:336:9 | a | provenance | | +| main.rs:342:9:342:9 | a | main.rs:343:10:343:10 | a | provenance | | +| main.rs:342:13:342:26 | async_source(...) | main.rs:342:9:342:9 | a | provenance | | +| main.rs:346:13:346:13 | c | main.rs:347:14:347:14 | c | provenance | | +| main.rs:346:17:346:25 | source(...) | main.rs:346:13:346:13 | c | provenance | | +| main.rs:354:9:354:9 | a | main.rs:355:10:355:10 | a | provenance | | +| main.rs:354:13:354:55 | ...::block_on(...) | main.rs:354:9:354:9 | a | provenance | | +| main.rs:354:41:354:54 | async_source(...) | main.rs:354:13:354:55 | ...::block_on(...) | provenance | MaD:3 | +| main.rs:366:44:368:9 | { ... } | main.rs:403:18:403:38 | t.get_double_number() | provenance | | +| main.rs:366:44:368:9 | { ... } | main.rs:407:18:407:50 | ...::get_double_number(...) | provenance | | +| main.rs:367:13:367:29 | self.get_number() | main.rs:367:13:367:33 | ... * ... | provenance | MaD:2 | +| main.rs:367:13:367:33 | ... * ... | main.rs:366:44:368:9 | { ... } | provenance | | +| main.rs:370:33:372:9 | { ... } | main.rs:411:18:411:37 | ...::get_default(...) | provenance | | +| main.rs:371:13:371:21 | source(...) | main.rs:370:33:372:9 | { ... } | provenance | | +| main.rs:378:37:380:9 | { ... } | main.rs:367:13:367:29 | self.get_number() | provenance | | +| main.rs:379:13:379:21 | source(...) | main.rs:378:37:380:9 | { ... } | provenance | | +| main.rs:390:44:392:9 | { ... } | main.rs:415:18:415:38 | i.get_double_number() | provenance | | +| main.rs:391:13:391:22 | source(...) | main.rs:390:44:392:9 | { ... } | provenance | | +| main.rs:394:33:396:9 | { ... } | main.rs:418:18:418:41 | ...::get_default(...) | provenance | | +| main.rs:395:13:395:21 | source(...) | main.rs:394:33:396:9 | { ... } | provenance | | +| main.rs:403:13:403:14 | n1 | main.rs:404:14:404:15 | n1 | provenance | | +| main.rs:403:18:403:38 | t.get_double_number() | main.rs:403:13:403:14 | n1 | provenance | | +| main.rs:407:13:407:14 | n2 | main.rs:408:14:408:15 | n2 | provenance | | +| main.rs:407:18:407:50 | ...::get_double_number(...) | main.rs:407:13:407:14 | n2 | provenance | | +| main.rs:411:13:411:14 | n3 | main.rs:412:14:412:15 | n3 | provenance | | +| main.rs:411:18:411:37 | ...::get_default(...) | main.rs:411:13:411:14 | n3 | provenance | | +| main.rs:415:13:415:14 | n4 | main.rs:416:14:416:15 | n4 | provenance | | +| main.rs:415:18:415:38 | i.get_double_number() | main.rs:415:13:415:14 | n4 | provenance | | +| main.rs:418:13:418:14 | n5 | main.rs:419:14:419:15 | n5 | provenance | | +| main.rs:418:18:418:41 | ...::get_default(...) | main.rs:418:13:418:14 | n5 | provenance | | nodes | main.rs:12:28:14:1 | { ... } | semmle.label | { ... } | | main.rs:13:5:13:13 | source(...) | semmle.label | source(...) | @@ -266,189 +271,193 @@ nodes | main.rs:87:10:87:10 | b | semmle.label | b | | main.rs:104:22:104:27 | ...: i64 | semmle.label | ...: i64 | | main.rs:105:14:105:14 | n | semmle.label | n | -| main.rs:108:30:110:5 | { ... } | semmle.label | { ... } | -| main.rs:109:35:109:43 | source(...) | semmle.label | source(...) | -| main.rs:112:27:112:32 | ...: i64 | semmle.label | ...: i64 | -| main.rs:112:42:114:5 | { ... } | semmle.label | { ... } | -| main.rs:118:28:118:33 | ...: i64 | semmle.label | ...: i64 | -| main.rs:119:14:119:14 | n | semmle.label | n | -| main.rs:122:36:124:5 | { ... } | semmle.label | { ... } | -| main.rs:123:35:123:44 | source(...) | semmle.label | source(...) | -| main.rs:126:33:126:38 | ...: i64 | semmle.label | ...: i64 | -| main.rs:126:48:128:5 | { ... } | semmle.label | { ... } | -| main.rs:132:9:132:9 | a | semmle.label | a | -| main.rs:132:13:132:30 | x.get_data_trait() | semmle.label | x.get_data_trait() | -| main.rs:133:10:133:10 | a | semmle.label | a | -| main.rs:138:9:138:9 | a | semmle.label | a | -| main.rs:138:13:138:25 | mn.get_data() | semmle.label | mn.get_data() | -| main.rs:139:10:139:10 | a | semmle.label | a | -| main.rs:142:9:142:9 | a | semmle.label | a | -| main.rs:142:13:142:31 | mn.get_data_trait() | semmle.label | mn.get_data_trait() | -| main.rs:143:10:143:10 | a | semmle.label | a | -| main.rs:149:9:149:9 | a | semmle.label | a | -| main.rs:149:13:149:22 | source(...) | semmle.label | source(...) | -| main.rs:150:21:150:21 | a | semmle.label | a | -| main.rs:155:9:155:9 | a | semmle.label | a | -| main.rs:155:13:155:21 | source(...) | semmle.label | source(...) | -| main.rs:156:16:156:16 | a | semmle.label | a | -| main.rs:159:9:159:9 | a | semmle.label | a | -| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | -| main.rs:160:22:160:22 | a | semmle.label | a | -| main.rs:166:9:166:9 | a | semmle.label | a | -| main.rs:166:13:166:22 | source(...) | semmle.label | source(...) | -| main.rs:167:9:167:9 | b | semmle.label | b | -| main.rs:167:13:167:35 | x.data_through_trait(...) | semmle.label | x.data_through_trait(...) | -| main.rs:167:34:167:34 | a | semmle.label | a | -| main.rs:168:10:168:10 | b | semmle.label | b | -| main.rs:173:9:173:9 | a | semmle.label | a | -| main.rs:173:13:173:21 | source(...) | semmle.label | source(...) | -| main.rs:174:9:174:9 | b | semmle.label | b | -| main.rs:174:13:174:30 | mn.data_through(...) | semmle.label | mn.data_through(...) | -| main.rs:174:29:174:29 | a | semmle.label | a | -| main.rs:175:10:175:10 | b | semmle.label | b | -| main.rs:178:9:178:9 | a | semmle.label | a | -| main.rs:178:13:178:22 | source(...) | semmle.label | source(...) | -| main.rs:179:9:179:9 | b | semmle.label | b | -| main.rs:179:13:179:36 | mn.data_through_trait(...) | semmle.label | mn.data_through_trait(...) | -| main.rs:179:35:179:35 | a | semmle.label | a | -| main.rs:180:10:180:10 | b | semmle.label | b | -| main.rs:187:9:187:9 | a | semmle.label | a | -| main.rs:187:13:187:21 | source(...) | semmle.label | source(...) | -| main.rs:188:25:188:25 | a | semmle.label | a | -| main.rs:193:9:193:9 | a | semmle.label | a | -| main.rs:193:13:193:22 | source(...) | semmle.label | source(...) | -| main.rs:194:9:194:9 | b | semmle.label | b | -| main.rs:194:13:194:39 | ...::data_through(...) | semmle.label | ...::data_through(...) | -| main.rs:194:38:194:38 | a | semmle.label | a | -| main.rs:195:10:195:10 | b | semmle.label | b | -| main.rs:206:12:206:17 | ...: i64 | semmle.label | ...: i64 | -| main.rs:206:28:208:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:207:9:207:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:207:24:207:24 | n | semmle.label | n | -| main.rs:212:9:212:9 | n [MyInt] | semmle.label | n [MyInt] | -| main.rs:212:13:212:34 | ...::new(...) [MyInt] | semmle.label | ...::new(...) [MyInt] | -| main.rs:212:24:212:33 | source(...) | semmle.label | source(...) | -| main.rs:213:9:213:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:213:24:213:24 | m | semmle.label | m | -| main.rs:214:10:214:10 | m | semmle.label | m | -| main.rs:220:12:220:15 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | -| main.rs:220:42:223:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:222:9:222:35 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:222:24:222:27 | self [MyInt] | semmle.label | self [MyInt] | -| main.rs:222:24:222:33 | self.value | semmle.label | self.value | -| main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | semmle.label | SelfParam [Return] [&ref, MyInt] | -| main.rs:227:30:227:39 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | -| main.rs:228:9:228:12 | [post] self [&ref, MyInt] | semmle.label | [post] self [&ref, MyInt] | -| main.rs:228:22:228:24 | rhs [MyInt] | semmle.label | rhs [MyInt] | -| main.rs:228:22:228:30 | rhs.value | semmle.label | rhs.value | -| main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | semmle.label | SelfParam [&ref, MyInt] | -| main.rs:235:38:237:5 | { ... } [&ref] | semmle.label | { ... } [&ref] | -| main.rs:236:9:236:22 | &... [&ref] | semmle.label | &... [&ref] | -| main.rs:236:10:236:22 | ... .value | semmle.label | ... .value | -| main.rs:236:11:236:15 | * ... [MyInt] | semmle.label | * ... [MyInt] | -| main.rs:236:12:236:15 | self [&ref, MyInt] | semmle.label | self [&ref, MyInt] | -| main.rs:242:9:242:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:242:13:242:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:242:28:242:36 | source(...) | semmle.label | source(...) | -| main.rs:244:9:244:9 | c [MyInt] | semmle.label | c [MyInt] | -| main.rs:244:13:244:13 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:244:13:244:17 | ... + ... [MyInt] | semmle.label | ... + ... [MyInt] | -| main.rs:245:10:245:10 | c [MyInt] | semmle.label | c [MyInt] | -| main.rs:245:10:245:16 | c.value | semmle.label | c.value | -| main.rs:252:9:252:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:252:13:252:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:252:28:252:36 | source(...) | semmle.label | source(...) | -| main.rs:254:9:254:9 | d [MyInt] | semmle.label | d [MyInt] | -| main.rs:254:13:254:13 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:254:13:254:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] | -| main.rs:255:10:255:10 | d [MyInt] | semmle.label | d [MyInt] | -| main.rs:255:10:255:16 | d.value | semmle.label | d.value | -| main.rs:259:9:259:9 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:259:13:259:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:259:28:259:37 | source(...) | semmle.label | source(...) | -| main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | semmle.label | [post] &mut a [&ref, MyInt] | -| main.rs:261:32:261:32 | [post] a [MyInt] | semmle.label | [post] a [MyInt] | -| main.rs:261:35:261:35 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:262:10:262:10 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:262:10:262:16 | a.value | semmle.label | a.value | -| main.rs:265:9:265:9 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:265:13:265:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:265:28:265:37 | source(...) | semmle.label | source(...) | -| main.rs:266:10:266:10 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:267:10:267:10 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:267:10:267:16 | a.value | semmle.label | a.value | -| main.rs:270:9:270:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:270:13:270:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:270:28:270:37 | source(...) | semmle.label | source(...) | -| main.rs:272:9:272:9 | c | semmle.label | c | -| main.rs:272:13:272:29 | * ... | semmle.label | * ... | -| main.rs:272:14:272:29 | ...::deref(...) [&ref] | semmle.label | ...::deref(...) [&ref] | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | semmle.label | &a [&ref, MyInt] | -| main.rs:272:28:272:28 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:273:10:273:10 | c | semmle.label | c | -| main.rs:275:9:275:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:108:30:114:5 | { ... } | semmle.label | { ... } | +| main.rs:112:13:112:21 | source(...) | semmle.label | source(...) | +| main.rs:116:27:116:32 | ...: i64 | semmle.label | ...: i64 | +| main.rs:116:42:122:5 | { ... } | semmle.label | { ... } | +| main.rs:126:28:126:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:127:14:127:14 | n | semmle.label | n | +| main.rs:130:36:136:5 | { ... } | semmle.label | { ... } | +| main.rs:134:13:134:22 | source(...) | semmle.label | source(...) | +| main.rs:138:33:138:38 | ...: i64 | semmle.label | ...: i64 | +| main.rs:138:48:144:5 | { ... } | semmle.label | { ... } | +| main.rs:148:9:148:9 | a | semmle.label | a | +| main.rs:148:13:148:30 | x.get_data_trait() | semmle.label | x.get_data_trait() | +| main.rs:149:10:149:10 | a | semmle.label | a | +| main.rs:154:9:154:9 | a | semmle.label | a | +| main.rs:154:13:154:25 | mn.get_data() | semmle.label | mn.get_data() | +| main.rs:155:10:155:10 | a | semmle.label | a | +| main.rs:158:9:158:9 | a | semmle.label | a | +| main.rs:158:13:158:31 | mn.get_data_trait() | semmle.label | mn.get_data_trait() | +| main.rs:159:10:159:10 | a | semmle.label | a | +| main.rs:165:9:165:9 | a | semmle.label | a | +| main.rs:165:13:165:22 | source(...) | semmle.label | source(...) | +| main.rs:166:21:166:21 | a | semmle.label | a | +| main.rs:171:9:171:9 | a | semmle.label | a | +| main.rs:171:13:171:21 | source(...) | semmle.label | source(...) | +| main.rs:172:16:172:16 | a | semmle.label | a | +| main.rs:175:9:175:9 | a | semmle.label | a | +| main.rs:175:13:175:22 | source(...) | semmle.label | source(...) | +| main.rs:176:22:176:22 | a | semmle.label | a | +| main.rs:182:9:182:9 | a | semmle.label | a | +| main.rs:182:13:182:22 | source(...) | semmle.label | source(...) | +| main.rs:183:9:183:9 | b | semmle.label | b | +| main.rs:183:13:183:35 | x.data_through_trait(...) | semmle.label | x.data_through_trait(...) | +| main.rs:183:34:183:34 | a | semmle.label | a | +| main.rs:184:10:184:10 | b | semmle.label | b | +| main.rs:189:9:189:9 | a | semmle.label | a | +| main.rs:189:13:189:21 | source(...) | semmle.label | source(...) | +| main.rs:190:9:190:9 | b | semmle.label | b | +| main.rs:190:13:190:30 | mn.data_through(...) | semmle.label | mn.data_through(...) | +| main.rs:190:29:190:29 | a | semmle.label | a | +| main.rs:191:10:191:10 | b | semmle.label | b | +| main.rs:194:9:194:9 | a | semmle.label | a | +| main.rs:194:13:194:22 | source(...) | semmle.label | source(...) | +| main.rs:195:9:195:9 | b | semmle.label | b | +| main.rs:195:13:195:36 | mn.data_through_trait(...) | semmle.label | mn.data_through_trait(...) | +| main.rs:195:35:195:35 | a | semmle.label | a | +| main.rs:196:10:196:10 | b | semmle.label | b | +| main.rs:203:9:203:9 | a | semmle.label | a | +| main.rs:203:13:203:21 | source(...) | semmle.label | source(...) | +| main.rs:204:25:204:25 | a | semmle.label | a | +| main.rs:209:9:209:9 | a | semmle.label | a | +| main.rs:209:13:209:22 | source(...) | semmle.label | source(...) | +| main.rs:210:9:210:9 | b | semmle.label | b | +| main.rs:210:13:210:39 | ...::data_through(...) | semmle.label | ...::data_through(...) | +| main.rs:210:38:210:38 | a | semmle.label | a | +| main.rs:211:10:211:10 | b | semmle.label | b | +| main.rs:222:12:222:17 | ...: i64 | semmle.label | ...: i64 | +| main.rs:222:28:224:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:223:9:223:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:223:24:223:24 | n | semmle.label | n | +| main.rs:228:9:228:9 | n [MyInt] | semmle.label | n [MyInt] | +| main.rs:228:13:228:34 | ...::new(...) [MyInt] | semmle.label | ...::new(...) [MyInt] | +| main.rs:228:24:228:33 | source(...) | semmle.label | source(...) | +| main.rs:229:9:229:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:229:24:229:24 | m | semmle.label | m | +| main.rs:230:10:230:10 | m | semmle.label | m | +| main.rs:236:12:236:15 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | +| main.rs:236:42:239:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:238:9:238:35 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:238:24:238:27 | self [MyInt] | semmle.label | self [MyInt] | +| main.rs:238:24:238:33 | self.value | semmle.label | self.value | +| main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | semmle.label | SelfParam [Return] [&ref, MyInt] | +| main.rs:243:30:243:39 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | +| main.rs:244:9:244:12 | [post] self [&ref, MyInt] | semmle.label | [post] self [&ref, MyInt] | +| main.rs:244:22:244:24 | rhs [MyInt] | semmle.label | rhs [MyInt] | +| main.rs:244:22:244:30 | rhs.value | semmle.label | rhs.value | +| main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | semmle.label | SelfParam [&ref, MyInt] | +| main.rs:251:38:253:5 | { ... } [&ref] | semmle.label | { ... } [&ref] | +| main.rs:252:9:252:22 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:252:10:252:22 | ... .value | semmle.label | ... .value | +| main.rs:252:11:252:15 | * ... [MyInt] | semmle.label | * ... [MyInt] | +| main.rs:252:12:252:15 | self [&ref, MyInt] | semmle.label | self [&ref, MyInt] | +| main.rs:258:9:258:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:258:13:258:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:258:28:258:36 | source(...) | semmle.label | source(...) | +| main.rs:260:9:260:9 | c [MyInt] | semmle.label | c [MyInt] | +| main.rs:260:13:260:13 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:260:13:260:17 | ... + ... [MyInt] | semmle.label | ... + ... [MyInt] | +| main.rs:261:10:261:10 | c [MyInt] | semmle.label | c [MyInt] | +| main.rs:261:10:261:16 | c.value | semmle.label | c.value | +| main.rs:268:9:268:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:268:13:268:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:268:28:268:36 | source(...) | semmle.label | source(...) | +| main.rs:270:9:270:9 | d [MyInt] | semmle.label | d [MyInt] | +| main.rs:270:13:270:13 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:270:13:270:20 | a.add(...) [MyInt] | semmle.label | a.add(...) [MyInt] | +| main.rs:271:10:271:10 | d [MyInt] | semmle.label | d [MyInt] | +| main.rs:271:10:271:16 | d.value | semmle.label | d.value | +| main.rs:275:9:275:9 | b [MyInt] | semmle.label | b [MyInt] | | main.rs:275:13:275:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | | main.rs:275:28:275:37 | source(...) | semmle.label | source(...) | -| main.rs:276:9:276:9 | c | semmle.label | c | -| main.rs:276:13:276:14 | * ... | semmle.label | * ... | -| main.rs:276:14:276:14 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:277:10:277:10 | c | semmle.label | c | -| main.rs:289:18:289:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | -| main.rs:289:48:291:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:293:26:293:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | -| main.rs:293:49:295:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | -| main.rs:299:9:299:9 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:299:13:299:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:299:28:299:36 | source(...) | semmle.label | source(...) | -| main.rs:301:9:301:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:301:24:301:24 | c | semmle.label | c | -| main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] | -| main.rs:301:50:301:50 | a [MyInt] | semmle.label | a [MyInt] | -| main.rs:302:10:302:10 | c | semmle.label | c | -| main.rs:305:9:305:9 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:305:13:305:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:305:28:305:37 | source(...) | semmle.label | source(...) | -| main.rs:306:9:306:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | -| main.rs:306:24:306:24 | c | semmle.label | c | -| main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] | -| main.rs:306:55:306:55 | b [MyInt] | semmle.label | b [MyInt] | -| main.rs:307:10:307:10 | c | semmle.label | c | -| main.rs:315:32:319:1 | { ... } | semmle.label | { ... } | -| main.rs:316:9:316:9 | a | semmle.label | a | -| main.rs:316:13:316:21 | source(...) | semmle.label | source(...) | -| main.rs:317:10:317:10 | a | semmle.label | a | -| main.rs:326:13:326:13 | c | semmle.label | c | -| main.rs:326:17:326:25 | source(...) | semmle.label | source(...) | -| main.rs:327:14:327:14 | c | semmle.label | c | -| main.rs:334:9:334:9 | a | semmle.label | a | -| main.rs:334:13:334:55 | ...::block_on(...) | semmle.label | ...::block_on(...) | -| main.rs:334:41:334:54 | async_source(...) | semmle.label | async_source(...) | -| main.rs:335:10:335:10 | a | semmle.label | a | -| main.rs:346:44:348:9 | { ... } | semmle.label | { ... } | -| main.rs:347:13:347:29 | self.get_number() | semmle.label | self.get_number() | -| main.rs:350:33:352:9 | { ... } | semmle.label | { ... } | -| main.rs:351:13:351:21 | source(...) | semmle.label | source(...) | -| main.rs:358:37:360:9 | { ... } | semmle.label | { ... } | -| main.rs:359:13:359:21 | source(...) | semmle.label | source(...) | -| main.rs:370:44:372:9 | { ... } | semmle.label | { ... } | -| main.rs:371:13:371:22 | source(...) | semmle.label | source(...) | -| main.rs:374:33:376:9 | { ... } | semmle.label | { ... } | -| main.rs:375:13:375:21 | source(...) | semmle.label | source(...) | -| main.rs:383:13:383:14 | n1 | semmle.label | n1 | -| main.rs:383:18:383:38 | t.get_double_number() | semmle.label | t.get_double_number() | -| main.rs:384:14:384:15 | n1 | semmle.label | n1 | -| main.rs:387:13:387:14 | n2 | semmle.label | n2 | -| main.rs:387:18:387:50 | ...::get_double_number(...) | semmle.label | ...::get_double_number(...) | -| main.rs:388:14:388:15 | n2 | semmle.label | n2 | -| main.rs:391:13:391:14 | n3 | semmle.label | n3 | -| main.rs:391:18:391:37 | ...::get_default(...) | semmle.label | ...::get_default(...) | -| main.rs:392:14:392:15 | n3 | semmle.label | n3 | -| main.rs:395:13:395:14 | n4 | semmle.label | n4 | -| main.rs:395:18:395:38 | i.get_double_number() | semmle.label | i.get_double_number() | -| main.rs:396:14:396:15 | n4 | semmle.label | n4 | -| main.rs:398:13:398:14 | n5 | semmle.label | n5 | -| main.rs:398:18:398:41 | ...::get_default(...) | semmle.label | ...::get_default(...) | -| main.rs:399:14:399:15 | n5 | semmle.label | n5 | +| main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | semmle.label | [post] &mut a [&ref, MyInt] | +| main.rs:277:32:277:32 | [post] a [MyInt] | semmle.label | [post] a [MyInt] | +| main.rs:277:35:277:35 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:278:10:278:10 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:278:10:278:16 | a.value | semmle.label | a.value | +| main.rs:281:9:281:9 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:281:13:281:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:281:28:281:37 | source(...) | semmle.label | source(...) | +| main.rs:282:10:282:10 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:283:10:283:10 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:283:10:283:16 | a.value | semmle.label | a.value | +| main.rs:286:9:286:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:286:13:286:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:286:28:286:37 | source(...) | semmle.label | source(...) | +| main.rs:288:9:288:9 | c | semmle.label | c | +| main.rs:288:13:288:29 | * ... | semmle.label | * ... | +| main.rs:288:14:288:29 | ...::deref(...) [&ref] | semmle.label | ...::deref(...) [&ref] | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | semmle.label | &a [&ref, MyInt] | +| main.rs:288:28:288:28 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:289:10:289:10 | c | semmle.label | c | +| main.rs:291:9:291:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:291:13:291:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:291:28:291:37 | source(...) | semmle.label | source(...) | +| main.rs:292:9:292:9 | c | semmle.label | c | +| main.rs:292:13:292:14 | * ... | semmle.label | * ... | +| main.rs:292:14:292:14 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:293:10:293:10 | c | semmle.label | c | +| main.rs:309:18:309:21 | SelfParam [MyInt] | semmle.label | SelfParam [MyInt] | +| main.rs:309:48:311:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:313:26:313:37 | ...: MyInt [MyInt] | semmle.label | ...: MyInt [MyInt] | +| main.rs:313:49:315:5 | { ... } [MyInt] | semmle.label | { ... } [MyInt] | +| main.rs:319:9:319:9 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:319:13:319:38 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:319:28:319:36 | source(...) | semmle.label | source(...) | +| main.rs:321:9:321:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:321:24:321:24 | c | semmle.label | c | +| main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | semmle.label | ...::take_self(...) [MyInt] | +| main.rs:321:50:321:50 | a [MyInt] | semmle.label | a [MyInt] | +| main.rs:322:10:322:10 | c | semmle.label | c | +| main.rs:325:9:325:9 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:325:13:325:39 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:325:28:325:37 | source(...) | semmle.label | source(...) | +| main.rs:326:9:326:26 | MyInt {...} [MyInt] | semmle.label | MyInt {...} [MyInt] | +| main.rs:326:24:326:24 | c | semmle.label | c | +| main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | semmle.label | ...::take_second(...) [MyInt] | +| main.rs:326:55:326:55 | b [MyInt] | semmle.label | b [MyInt] | +| main.rs:327:10:327:10 | c | semmle.label | c | +| main.rs:335:32:339:1 | { ... } | semmle.label | { ... } | +| main.rs:336:9:336:9 | a | semmle.label | a | +| main.rs:336:13:336:21 | source(...) | semmle.label | source(...) | +| main.rs:337:10:337:10 | a | semmle.label | a | +| main.rs:342:9:342:9 | a | semmle.label | a | +| main.rs:342:13:342:26 | async_source(...) | semmle.label | async_source(...) | +| main.rs:343:10:343:10 | a | semmle.label | a | +| main.rs:346:13:346:13 | c | semmle.label | c | +| main.rs:346:17:346:25 | source(...) | semmle.label | source(...) | +| main.rs:347:14:347:14 | c | semmle.label | c | +| main.rs:354:9:354:9 | a | semmle.label | a | +| main.rs:354:13:354:55 | ...::block_on(...) | semmle.label | ...::block_on(...) | +| main.rs:354:41:354:54 | async_source(...) | semmle.label | async_source(...) | +| main.rs:355:10:355:10 | a | semmle.label | a | +| main.rs:366:44:368:9 | { ... } | semmle.label | { ... } | +| main.rs:367:13:367:29 | self.get_number() | semmle.label | self.get_number() | +| main.rs:367:13:367:33 | ... * ... | semmle.label | ... * ... | +| main.rs:370:33:372:9 | { ... } | semmle.label | { ... } | +| main.rs:371:13:371:21 | source(...) | semmle.label | source(...) | +| main.rs:378:37:380:9 | { ... } | semmle.label | { ... } | +| main.rs:379:13:379:21 | source(...) | semmle.label | source(...) | +| main.rs:390:44:392:9 | { ... } | semmle.label | { ... } | +| main.rs:391:13:391:22 | source(...) | semmle.label | source(...) | +| main.rs:394:33:396:9 | { ... } | semmle.label | { ... } | +| main.rs:395:13:395:21 | source(...) | semmle.label | source(...) | +| main.rs:403:13:403:14 | n1 | semmle.label | n1 | +| main.rs:403:18:403:38 | t.get_double_number() | semmle.label | t.get_double_number() | +| main.rs:404:14:404:15 | n1 | semmle.label | n1 | +| main.rs:407:13:407:14 | n2 | semmle.label | n2 | +| main.rs:407:18:407:50 | ...::get_double_number(...) | semmle.label | ...::get_double_number(...) | +| main.rs:408:14:408:15 | n2 | semmle.label | n2 | +| main.rs:411:13:411:14 | n3 | semmle.label | n3 | +| main.rs:411:18:411:37 | ...::get_default(...) | semmle.label | ...::get_default(...) | +| main.rs:412:14:412:15 | n3 | semmle.label | n3 | +| main.rs:415:13:415:14 | n4 | semmle.label | n4 | +| main.rs:415:18:415:38 | i.get_double_number() | semmle.label | i.get_double_number() | +| main.rs:416:14:416:15 | n4 | semmle.label | n4 | +| main.rs:418:13:418:14 | n5 | semmle.label | n5 | +| main.rs:418:18:418:41 | ...::get_default(...) | semmle.label | ...::get_default(...) | +| main.rs:419:14:419:15 | n5 | semmle.label | n5 | subpaths | main.rs:38:23:38:31 | source(...) | main.rs:26:28:26:33 | ...: i64 | main.rs:26:17:26:25 | SelfParam [Return] [&ref, MyStruct] | main.rs:38:6:38:11 | [post] &mut a [&ref, MyStruct] | | main.rs:39:10:39:10 | a [MyStruct] | main.rs:30:17:30:21 | SelfParam [&ref, MyStruct] | main.rs:30:31:32:5 | { ... } | main.rs:39:10:39:21 | a.get_data() | @@ -457,19 +466,19 @@ subpaths | main.rs:67:26:67:26 | a | main.rs:61:17:61:22 | ...: i64 | main.rs:61:32:63:1 | { ... } | main.rs:67:13:67:27 | pass_through(...) | | main.rs:72:26:75:5 | { ... } | main.rs:61:17:61:22 | ...: i64 | main.rs:61:32:63:1 | { ... } | main.rs:72:13:75:6 | pass_through(...) | | main.rs:86:26:86:26 | a | main.rs:82:21:82:26 | ...: i64 | main.rs:82:36:84:5 | { ... } | main.rs:86:13:86:27 | pass_through(...) | -| main.rs:167:34:167:34 | a | main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | main.rs:167:13:167:35 | x.data_through_trait(...) | -| main.rs:174:29:174:29 | a | main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | main.rs:174:13:174:30 | mn.data_through(...) | -| main.rs:179:35:179:35 | a | main.rs:126:33:126:38 | ...: i64 | main.rs:126:48:128:5 | { ... } | main.rs:179:13:179:36 | mn.data_through_trait(...) | -| main.rs:194:38:194:38 | a | main.rs:112:27:112:32 | ...: i64 | main.rs:112:42:114:5 | { ... } | main.rs:194:13:194:39 | ...::data_through(...) | -| main.rs:212:24:212:33 | source(...) | main.rs:206:12:206:17 | ...: i64 | main.rs:206:28:208:5 | { ... } [MyInt] | main.rs:212:13:212:34 | ...::new(...) [MyInt] | -| main.rs:244:13:244:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | main.rs:244:13:244:17 | ... + ... [MyInt] | -| main.rs:254:13:254:13 | a [MyInt] | main.rs:220:12:220:15 | SelfParam [MyInt] | main.rs:220:42:223:5 | { ... } [MyInt] | main.rs:254:13:254:20 | a.add(...) [MyInt] | -| main.rs:261:35:261:35 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | main.rs:261:27:261:32 | [post] &mut a [&ref, MyInt] | -| main.rs:266:10:266:10 | b [MyInt] | main.rs:227:30:227:39 | ...: MyInt [MyInt] | main.rs:227:19:227:27 | SelfParam [Return] [&ref, MyInt] | main.rs:267:10:267:10 | a [MyInt] | -| main.rs:272:27:272:28 | &a [&ref, MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | main.rs:235:38:237:5 | { ... } [&ref] | main.rs:272:14:272:29 | ...::deref(...) [&ref] | -| main.rs:276:14:276:14 | a [MyInt] | main.rs:235:14:235:18 | SelfParam [&ref, MyInt] | main.rs:235:38:237:5 | { ... } [&ref] | main.rs:276:13:276:14 | * ... | -| main.rs:301:50:301:50 | a [MyInt] | main.rs:289:18:289:21 | SelfParam [MyInt] | main.rs:289:48:291:5 | { ... } [MyInt] | main.rs:301:30:301:54 | ...::take_self(...) [MyInt] | -| main.rs:306:55:306:55 | b [MyInt] | main.rs:293:26:293:37 | ...: MyInt [MyInt] | main.rs:293:49:295:5 | { ... } [MyInt] | main.rs:306:30:306:56 | ...::take_second(...) [MyInt] | +| main.rs:183:34:183:34 | a | main.rs:138:33:138:38 | ...: i64 | main.rs:138:48:144:5 | { ... } | main.rs:183:13:183:35 | x.data_through_trait(...) | +| main.rs:190:29:190:29 | a | main.rs:116:27:116:32 | ...: i64 | main.rs:116:42:122:5 | { ... } | main.rs:190:13:190:30 | mn.data_through(...) | +| main.rs:195:35:195:35 | a | main.rs:138:33:138:38 | ...: i64 | main.rs:138:48:144:5 | { ... } | main.rs:195:13:195:36 | mn.data_through_trait(...) | +| main.rs:210:38:210:38 | a | main.rs:116:27:116:32 | ...: i64 | main.rs:116:42:122:5 | { ... } | main.rs:210:13:210:39 | ...::data_through(...) | +| main.rs:228:24:228:33 | source(...) | main.rs:222:12:222:17 | ...: i64 | main.rs:222:28:224:5 | { ... } [MyInt] | main.rs:228:13:228:34 | ...::new(...) [MyInt] | +| main.rs:260:13:260:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | main.rs:236:42:239:5 | { ... } [MyInt] | main.rs:260:13:260:17 | ... + ... [MyInt] | +| main.rs:270:13:270:13 | a [MyInt] | main.rs:236:12:236:15 | SelfParam [MyInt] | main.rs:236:42:239:5 | { ... } [MyInt] | main.rs:270:13:270:20 | a.add(...) [MyInt] | +| main.rs:277:35:277:35 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | main.rs:277:27:277:32 | [post] &mut a [&ref, MyInt] | +| main.rs:282:10:282:10 | b [MyInt] | main.rs:243:30:243:39 | ...: MyInt [MyInt] | main.rs:243:19:243:27 | SelfParam [Return] [&ref, MyInt] | main.rs:283:10:283:10 | a [MyInt] | +| main.rs:288:27:288:28 | &a [&ref, MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | main.rs:251:38:253:5 | { ... } [&ref] | main.rs:288:14:288:29 | ...::deref(...) [&ref] | +| main.rs:292:14:292:14 | a [MyInt] | main.rs:251:14:251:18 | SelfParam [&ref, MyInt] | main.rs:251:38:253:5 | { ... } [&ref] | main.rs:292:13:292:14 | * ... | +| main.rs:321:50:321:50 | a [MyInt] | main.rs:309:18:309:21 | SelfParam [MyInt] | main.rs:309:48:311:5 | { ... } [MyInt] | main.rs:321:30:321:54 | ...::take_self(...) [MyInt] | +| main.rs:326:55:326:55 | b [MyInt] | main.rs:313:26:313:37 | ...: MyInt [MyInt] | main.rs:313:49:315:5 | { ... } [MyInt] | main.rs:326:30:326:56 | ...::take_second(...) [MyInt] | testFailures #select | main.rs:18:10:18:10 | a | main.rs:13:5:13:13 | source(...) | main.rs:18:10:18:10 | a | $@ | main.rs:13:5:13:13 | source(...) | source(...) | @@ -479,31 +488,32 @@ testFailures | main.rs:68:10:68:10 | b | main.rs:66:13:66:21 | source(...) | main.rs:68:10:68:10 | b | $@ | main.rs:66:13:66:21 | source(...) | source(...) | | main.rs:76:10:76:10 | a | main.rs:74:9:74:18 | source(...) | main.rs:76:10:76:10 | a | $@ | main.rs:74:9:74:18 | source(...) | source(...) | | main.rs:87:10:87:10 | b | main.rs:80:13:80:22 | source(...) | main.rs:87:10:87:10 | b | $@ | main.rs:80:13:80:22 | source(...) | source(...) | -| main.rs:105:14:105:14 | n | main.rs:155:13:155:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:155:13:155:21 | source(...) | source(...) | -| main.rs:105:14:105:14 | n | main.rs:187:13:187:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:187:13:187:21 | source(...) | source(...) | -| main.rs:119:14:119:14 | n | main.rs:149:13:149:22 | source(...) | main.rs:119:14:119:14 | n | $@ | main.rs:149:13:149:22 | source(...) | source(...) | -| main.rs:119:14:119:14 | n | main.rs:159:13:159:22 | source(...) | main.rs:119:14:119:14 | n | $@ | main.rs:159:13:159:22 | source(...) | source(...) | -| main.rs:133:10:133:10 | a | main.rs:123:35:123:44 | source(...) | main.rs:133:10:133:10 | a | $@ | main.rs:123:35:123:44 | source(...) | source(...) | -| main.rs:139:10:139:10 | a | main.rs:109:35:109:43 | source(...) | main.rs:139:10:139:10 | a | $@ | main.rs:109:35:109:43 | source(...) | source(...) | -| main.rs:143:10:143:10 | a | main.rs:123:35:123:44 | source(...) | main.rs:143:10:143:10 | a | $@ | main.rs:123:35:123:44 | source(...) | source(...) | -| main.rs:168:10:168:10 | b | main.rs:166:13:166:22 | source(...) | main.rs:168:10:168:10 | b | $@ | main.rs:166:13:166:22 | source(...) | source(...) | -| main.rs:175:10:175:10 | b | main.rs:173:13:173:21 | source(...) | main.rs:175:10:175:10 | b | $@ | main.rs:173:13:173:21 | source(...) | source(...) | -| main.rs:180:10:180:10 | b | main.rs:178:13:178:22 | source(...) | main.rs:180:10:180:10 | b | $@ | main.rs:178:13:178:22 | source(...) | source(...) | -| main.rs:195:10:195:10 | b | main.rs:193:13:193:22 | source(...) | main.rs:195:10:195:10 | b | $@ | main.rs:193:13:193:22 | source(...) | source(...) | -| main.rs:214:10:214:10 | m | main.rs:212:24:212:33 | source(...) | main.rs:214:10:214:10 | m | $@ | main.rs:212:24:212:33 | source(...) | source(...) | -| main.rs:245:10:245:16 | c.value | main.rs:242:28:242:36 | source(...) | main.rs:245:10:245:16 | c.value | $@ | main.rs:242:28:242:36 | source(...) | source(...) | -| main.rs:255:10:255:16 | d.value | main.rs:252:28:252:36 | source(...) | main.rs:255:10:255:16 | d.value | $@ | main.rs:252:28:252:36 | source(...) | source(...) | -| main.rs:262:10:262:16 | a.value | main.rs:259:28:259:37 | source(...) | main.rs:262:10:262:16 | a.value | $@ | main.rs:259:28:259:37 | source(...) | source(...) | -| main.rs:267:10:267:16 | a.value | main.rs:265:28:265:37 | source(...) | main.rs:267:10:267:16 | a.value | $@ | main.rs:265:28:265:37 | source(...) | source(...) | -| main.rs:273:10:273:10 | c | main.rs:270:28:270:37 | source(...) | main.rs:273:10:273:10 | c | $@ | main.rs:270:28:270:37 | source(...) | source(...) | -| main.rs:277:10:277:10 | c | main.rs:275:28:275:37 | source(...) | main.rs:277:10:277:10 | c | $@ | main.rs:275:28:275:37 | source(...) | source(...) | -| main.rs:302:10:302:10 | c | main.rs:299:28:299:36 | source(...) | main.rs:302:10:302:10 | c | $@ | main.rs:299:28:299:36 | source(...) | source(...) | -| main.rs:307:10:307:10 | c | main.rs:305:28:305:37 | source(...) | main.rs:307:10:307:10 | c | $@ | main.rs:305:28:305:37 | source(...) | source(...) | -| main.rs:317:10:317:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:317:10:317:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | -| main.rs:327:14:327:14 | c | main.rs:326:17:326:25 | source(...) | main.rs:327:14:327:14 | c | $@ | main.rs:326:17:326:25 | source(...) | source(...) | -| main.rs:335:10:335:10 | a | main.rs:316:13:316:21 | source(...) | main.rs:335:10:335:10 | a | $@ | main.rs:316:13:316:21 | source(...) | source(...) | -| main.rs:384:14:384:15 | n1 | main.rs:359:13:359:21 | source(...) | main.rs:384:14:384:15 | n1 | $@ | main.rs:359:13:359:21 | source(...) | source(...) | -| main.rs:388:14:388:15 | n2 | main.rs:359:13:359:21 | source(...) | main.rs:388:14:388:15 | n2 | $@ | main.rs:359:13:359:21 | source(...) | source(...) | -| main.rs:392:14:392:15 | n3 | main.rs:351:13:351:21 | source(...) | main.rs:392:14:392:15 | n3 | $@ | main.rs:351:13:351:21 | source(...) | source(...) | -| main.rs:396:14:396:15 | n4 | main.rs:371:13:371:22 | source(...) | main.rs:396:14:396:15 | n4 | $@ | main.rs:371:13:371:22 | source(...) | source(...) | -| main.rs:399:14:399:15 | n5 | main.rs:375:13:375:21 | source(...) | main.rs:399:14:399:15 | n5 | $@ | main.rs:375:13:375:21 | source(...) | source(...) | +| main.rs:105:14:105:14 | n | main.rs:171:13:171:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:171:13:171:21 | source(...) | source(...) | +| main.rs:105:14:105:14 | n | main.rs:203:13:203:21 | source(...) | main.rs:105:14:105:14 | n | $@ | main.rs:203:13:203:21 | source(...) | source(...) | +| main.rs:127:14:127:14 | n | main.rs:165:13:165:22 | source(...) | main.rs:127:14:127:14 | n | $@ | main.rs:165:13:165:22 | source(...) | source(...) | +| main.rs:127:14:127:14 | n | main.rs:175:13:175:22 | source(...) | main.rs:127:14:127:14 | n | $@ | main.rs:175:13:175:22 | source(...) | source(...) | +| main.rs:149:10:149:10 | a | main.rs:134:13:134:22 | source(...) | main.rs:149:10:149:10 | a | $@ | main.rs:134:13:134:22 | source(...) | source(...) | +| main.rs:155:10:155:10 | a | main.rs:112:13:112:21 | source(...) | main.rs:155:10:155:10 | a | $@ | main.rs:112:13:112:21 | source(...) | source(...) | +| main.rs:159:10:159:10 | a | main.rs:134:13:134:22 | source(...) | main.rs:159:10:159:10 | a | $@ | main.rs:134:13:134:22 | source(...) | source(...) | +| main.rs:184:10:184:10 | b | main.rs:182:13:182:22 | source(...) | main.rs:184:10:184:10 | b | $@ | main.rs:182:13:182:22 | source(...) | source(...) | +| main.rs:191:10:191:10 | b | main.rs:189:13:189:21 | source(...) | main.rs:191:10:191:10 | b | $@ | main.rs:189:13:189:21 | source(...) | source(...) | +| main.rs:196:10:196:10 | b | main.rs:194:13:194:22 | source(...) | main.rs:196:10:196:10 | b | $@ | main.rs:194:13:194:22 | source(...) | source(...) | +| main.rs:211:10:211:10 | b | main.rs:209:13:209:22 | source(...) | main.rs:211:10:211:10 | b | $@ | main.rs:209:13:209:22 | source(...) | source(...) | +| main.rs:230:10:230:10 | m | main.rs:228:24:228:33 | source(...) | main.rs:230:10:230:10 | m | $@ | main.rs:228:24:228:33 | source(...) | source(...) | +| main.rs:261:10:261:16 | c.value | main.rs:258:28:258:36 | source(...) | main.rs:261:10:261:16 | c.value | $@ | main.rs:258:28:258:36 | source(...) | source(...) | +| main.rs:271:10:271:16 | d.value | main.rs:268:28:268:36 | source(...) | main.rs:271:10:271:16 | d.value | $@ | main.rs:268:28:268:36 | source(...) | source(...) | +| main.rs:278:10:278:16 | a.value | main.rs:275:28:275:37 | source(...) | main.rs:278:10:278:16 | a.value | $@ | main.rs:275:28:275:37 | source(...) | source(...) | +| main.rs:283:10:283:16 | a.value | main.rs:281:28:281:37 | source(...) | main.rs:283:10:283:16 | a.value | $@ | main.rs:281:28:281:37 | source(...) | source(...) | +| main.rs:289:10:289:10 | c | main.rs:286:28:286:37 | source(...) | main.rs:289:10:289:10 | c | $@ | main.rs:286:28:286:37 | source(...) | source(...) | +| main.rs:293:10:293:10 | c | main.rs:291:28:291:37 | source(...) | main.rs:293:10:293:10 | c | $@ | main.rs:291:28:291:37 | source(...) | source(...) | +| main.rs:322:10:322:10 | c | main.rs:319:28:319:36 | source(...) | main.rs:322:10:322:10 | c | $@ | main.rs:319:28:319:36 | source(...) | source(...) | +| main.rs:327:10:327:10 | c | main.rs:325:28:325:37 | source(...) | main.rs:327:10:327:10 | c | $@ | main.rs:325:28:325:37 | source(...) | source(...) | +| main.rs:337:10:337:10 | a | main.rs:336:13:336:21 | source(...) | main.rs:337:10:337:10 | a | $@ | main.rs:336:13:336:21 | source(...) | source(...) | +| main.rs:343:10:343:10 | a | main.rs:336:13:336:21 | source(...) | main.rs:343:10:343:10 | a | $@ | main.rs:336:13:336:21 | source(...) | source(...) | +| main.rs:347:14:347:14 | c | main.rs:346:17:346:25 | source(...) | main.rs:347:14:347:14 | c | $@ | main.rs:346:17:346:25 | source(...) | source(...) | +| main.rs:355:10:355:10 | a | main.rs:336:13:336:21 | source(...) | main.rs:355:10:355:10 | a | $@ | main.rs:336:13:336:21 | source(...) | source(...) | +| main.rs:404:14:404:15 | n1 | main.rs:379:13:379:21 | source(...) | main.rs:404:14:404:15 | n1 | $@ | main.rs:379:13:379:21 | source(...) | source(...) | +| main.rs:408:14:408:15 | n2 | main.rs:379:13:379:21 | source(...) | main.rs:408:14:408:15 | n2 | $@ | main.rs:379:13:379:21 | source(...) | source(...) | +| main.rs:412:14:412:15 | n3 | main.rs:371:13:371:21 | source(...) | main.rs:412:14:412:15 | n3 | $@ | main.rs:371:13:371:21 | source(...) | source(...) | +| main.rs:416:14:416:15 | n4 | main.rs:391:13:391:22 | source(...) | main.rs:416:14:416:15 | n4 | $@ | main.rs:391:13:391:22 | source(...) | source(...) | +| main.rs:419:14:419:15 | n5 | main.rs:395:13:395:21 | source(...) | main.rs:419:14:419:15 | n5 | $@ | main.rs:395:13:395:21 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/global/main.rs b/rust/ql/test/library-tests/dataflow/global/main.rs index 9435de4a681..bd910c03b42 100644 --- a/rust/ql/test/library-tests/dataflow/global/main.rs +++ b/rust/ql/test/library-tests/dataflow/global/main.rs @@ -106,11 +106,19 @@ impl MyFlag { } fn get_data(self) -> i64 { - if self.flag { 0 } else { source(2) } + if self.flag { + 0 + } else { + source(2) + } } fn data_through(self, n: i64) -> i64 { - if self.flag { 0 } else { n } + if self.flag { + 0 + } else { + n + } } } @@ -120,11 +128,19 @@ impl MyTrait for MyFlag { } fn get_data_trait(self) -> i64 { - if self.flag { 0 } else { source(21) } + if self.flag { + 0 + } else { + source(21) + } } fn data_through_trait(self, n: i64) -> i64 { - if self.flag { 0 } else { n } + if self.flag { + 0 + } else { + n + } } } @@ -275,6 +291,10 @@ fn test_operator_overloading() { let a = MyInt { value: source(28) }; let c = *a; sink(c); // $ hasValueFlow=28 + + let a = MyInt { value: source(29) }; + let c = a.min(1042); + sink(c); // $ MISSING: hasValueFlow=29 } trait MyTrait2 { @@ -320,7 +340,7 @@ async fn async_source() -> i64 { async fn test_async_await_async_part() { let a = async_source().await; - sink(a); // $ MISSING: hasValueFlow=1 + sink(a); // $ hasTaintFlow=1 MISSING: hasValueFlow=1 let b = async { let c = source(2); diff --git a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected index 66b4abd4649..d90eebdf5e5 100644 --- a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected +++ b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected @@ -25,111 +25,112 @@ | main.rs:86:13:86:27 | pass_through(...) | main.rs:82:5:84:5 | fn pass_through | | main.rs:87:5:87:11 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:105:9:105:15 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:109:35:109:43 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:119:9:119:15 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:123:35:123:44 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:132:13:132:30 | x.get_data_trait() | main.rs:122:5:124:5 | fn get_data_trait | -| main.rs:133:5:133:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:138:13:138:25 | mn.get_data() | main.rs:108:5:110:5 | fn get_data | -| main.rs:139:5:139:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:142:13:142:31 | mn.get_data_trait() | main.rs:122:5:124:5 | fn get_data_trait | -| main.rs:143:5:143:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:145:5:145:60 | data_out_of_method_trait_dispatch(...) | main.rs:131:1:134:1 | fn data_out_of_method_trait_dispatch | -| main.rs:149:13:149:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:150:5:150:22 | x.data_in_trait(...) | main.rs:118:5:120:5 | fn data_in_trait | -| main.rs:155:13:155:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:156:5:156:17 | mn.data_in(...) | main.rs:104:5:106:5 | fn data_in | -| main.rs:159:13:159:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:160:5:160:23 | mn.data_in_trait(...) | main.rs:118:5:120:5 | fn data_in_trait | -| main.rs:162:5:162:64 | data_in_to_method_call_trait_dispatch(...) | main.rs:148:1:151:1 | fn data_in_to_method_call_trait_dispatch | -| main.rs:166:13:166:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:167:13:167:35 | x.data_through_trait(...) | main.rs:126:5:128:5 | fn data_through_trait | -| main.rs:168:5:168:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:173:13:173:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:174:13:174:30 | mn.data_through(...) | main.rs:112:5:114:5 | fn data_through | -| main.rs:175:5:175:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:178:13:178:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:179:13:179:36 | mn.data_through_trait(...) | main.rs:126:5:128:5 | fn data_through_trait | -| main.rs:180:5:180:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:182:5:182:61 | data_through_method_trait_dispatch(...) | main.rs:165:1:169:1 | fn data_through_method_trait_dispatch | -| main.rs:187:13:187:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:188:5:188:26 | ...::data_in(...) | main.rs:104:5:106:5 | fn data_in | -| main.rs:193:13:193:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:194:13:194:39 | ...::data_through(...) | main.rs:112:5:114:5 | fn data_through | -| main.rs:195:5:195:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:212:13:212:34 | ...::new(...) | main.rs:205:5:208:5 | fn new | -| main.rs:212:24:212:33 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:214:5:214:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:236:11:236:15 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:236:11:236:15 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:242:28:242:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:244:13:244:17 | ... + ... | main.rs:220:5:223:5 | fn add | -| main.rs:245:5:245:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:248:28:248:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:249:13:249:17 | ... + ... | main.rs:220:5:223:5 | fn add | -| main.rs:250:5:250:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:252:28:252:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:254:13:254:20 | a.add(...) | main.rs:220:5:223:5 | fn add | -| main.rs:255:5:255:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:259:28:259:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:261:5:261:36 | ...::mul_assign(...) | main.rs:227:5:229:5 | fn mul_assign | -| main.rs:262:5:262:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:265:28:265:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:266:5:266:10 | ... *= ... | main.rs:227:5:229:5 | fn mul_assign | -| main.rs:267:5:267:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:270:28:270:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:272:13:272:29 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:272:13:272:29 | * ... | {EXTERNAL LOCATION} | fn deref | -| main.rs:272:14:272:29 | ...::deref(...) | main.rs:235:5:237:5 | fn deref | -| main.rs:273:5:273:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:112:13:112:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:127:9:127:15 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:134:13:134:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:148:13:148:30 | x.get_data_trait() | main.rs:130:5:136:5 | fn get_data_trait | +| main.rs:149:5:149:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:154:13:154:25 | mn.get_data() | main.rs:108:5:114:5 | fn get_data | +| main.rs:155:5:155:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:158:13:158:31 | mn.get_data_trait() | main.rs:130:5:136:5 | fn get_data_trait | +| main.rs:159:5:159:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:161:5:161:60 | data_out_of_method_trait_dispatch(...) | main.rs:147:1:150:1 | fn data_out_of_method_trait_dispatch | +| main.rs:165:13:165:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:166:5:166:22 | x.data_in_trait(...) | main.rs:126:5:128:5 | fn data_in_trait | +| main.rs:171:13:171:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:172:5:172:17 | mn.data_in(...) | main.rs:104:5:106:5 | fn data_in | +| main.rs:175:13:175:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:176:5:176:23 | mn.data_in_trait(...) | main.rs:126:5:128:5 | fn data_in_trait | +| main.rs:178:5:178:64 | data_in_to_method_call_trait_dispatch(...) | main.rs:164:1:167:1 | fn data_in_to_method_call_trait_dispatch | +| main.rs:182:13:182:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:183:13:183:35 | x.data_through_trait(...) | main.rs:138:5:144:5 | fn data_through_trait | +| main.rs:184:5:184:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:189:13:189:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:190:13:190:30 | mn.data_through(...) | main.rs:116:5:122:5 | fn data_through | +| main.rs:191:5:191:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:194:13:194:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:195:13:195:36 | mn.data_through_trait(...) | main.rs:138:5:144:5 | fn data_through_trait | +| main.rs:196:5:196:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:198:5:198:61 | data_through_method_trait_dispatch(...) | main.rs:181:1:185:1 | fn data_through_method_trait_dispatch | +| main.rs:203:13:203:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:204:5:204:26 | ...::data_in(...) | main.rs:104:5:106:5 | fn data_in | +| main.rs:209:13:209:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:210:13:210:39 | ...::data_through(...) | main.rs:116:5:122:5 | fn data_through | +| main.rs:211:5:211:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:228:13:228:34 | ...::new(...) | main.rs:221:5:224:5 | fn new | +| main.rs:228:24:228:33 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:230:5:230:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:252:11:252:15 | * ... | {EXTERNAL LOCATION} | fn deref | +| main.rs:258:28:258:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:260:13:260:17 | ... + ... | main.rs:236:5:239:5 | fn add | +| main.rs:261:5:261:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:264:28:264:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:265:13:265:17 | ... + ... | main.rs:236:5:239:5 | fn add | +| main.rs:266:5:266:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:268:28:268:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:270:13:270:20 | a.add(...) | main.rs:236:5:239:5 | fn add | +| main.rs:271:5:271:17 | sink(...) | main.rs:5:1:7:1 | fn sink | | main.rs:275:28:275:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:276:13:276:14 | * ... | main.rs:235:5:237:5 | fn deref | -| main.rs:277:5:277:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:299:28:299:36 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:301:30:301:54 | ...::take_self(...) | main.rs:289:5:291:5 | fn take_self | -| main.rs:302:5:302:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:305:28:305:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:306:30:306:56 | ...::take_second(...) | main.rs:293:5:295:5 | fn take_second | -| main.rs:307:5:307:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:310:28:310:37 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:311:30:311:54 | ...::take_self(...) | main.rs:289:5:291:5 | fn take_self | -| main.rs:312:5:312:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:316:13:316:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:317:5:317:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:322:13:322:26 | async_source(...) | main.rs:315:1:319:1 | fn async_source | -| main.rs:323:5:323:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:326:17:326:25 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:327:9:327:15 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:330:5:330:17 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:334:13:334:55 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | -| main.rs:334:41:334:54 | async_source(...) | main.rs:315:1:319:1 | fn async_source | -| main.rs:335:5:335:11 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:337:5:337:62 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | -| main.rs:337:33:337:61 | test_async_await_async_part(...) | main.rs:321:1:331:1 | fn test_async_await_async_part | -| main.rs:347:13:347:29 | self.get_number() | main.rs:358:9:360:9 | fn get_number | -| main.rs:347:13:347:29 | self.get_number() | main.rs:366:9:368:9 | fn get_number | -| main.rs:351:13:351:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:359:13:359:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:371:13:371:22 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:375:13:375:21 | source(...) | main.rs:1:1:3:1 | fn source | -| main.rs:383:18:383:38 | t.get_double_number() | main.rs:346:9:348:9 | fn get_double_number | -| main.rs:384:9:384:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:387:18:387:50 | ...::get_double_number(...) | main.rs:346:9:348:9 | fn get_double_number | -| main.rs:388:9:388:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:391:18:391:37 | ...::get_default(...) | main.rs:350:9:352:9 | fn get_default | -| main.rs:392:9:392:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:395:18:395:38 | i.get_double_number() | main.rs:370:9:372:9 | fn get_double_number | -| main.rs:396:9:396:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:398:18:398:41 | ...::get_default(...) | main.rs:374:9:376:9 | fn get_default | -| main.rs:399:9:399:16 | sink(...) | main.rs:5:1:7:1 | fn sink | -| main.rs:404:5:404:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call | -| main.rs:405:5:405:35 | data_out_of_call_side_effect1(...) | main.rs:35:1:40:1 | fn data_out_of_call_side_effect1 | -| main.rs:406:5:406:35 | data_out_of_call_side_effect2(...) | main.rs:42:1:50:1 | fn data_out_of_call_side_effect2 | -| main.rs:407:5:407:21 | data_in_to_call(...) | main.rs:56:1:59:1 | fn data_in_to_call | -| main.rs:408:5:408:23 | data_through_call(...) | main.rs:65:1:69:1 | fn data_through_call | -| main.rs:409:5:409:34 | data_through_nested_function(...) | main.rs:79:1:88:1 | fn data_through_nested_function | -| main.rs:411:5:411:24 | data_out_of_method(...) | main.rs:136:1:146:1 | fn data_out_of_method | -| main.rs:412:5:412:28 | data_in_to_method_call(...) | main.rs:153:1:163:1 | fn data_in_to_method_call | -| main.rs:413:5:413:25 | data_through_method(...) | main.rs:171:1:183:1 | fn data_through_method | -| main.rs:415:5:415:31 | test_operator_overloading(...) | main.rs:240:1:278:1 | fn test_operator_overloading | -| main.rs:416:5:416:22 | test_async_await(...) | main.rs:333:1:338:1 | fn test_async_await | +| main.rs:277:5:277:36 | ...::mul_assign(...) | main.rs:243:5:245:5 | fn mul_assign | +| main.rs:278:5:278:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:281:28:281:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:282:5:282:10 | ... *= ... | main.rs:243:5:245:5 | fn mul_assign | +| main.rs:283:5:283:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:286:28:286:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:288:13:288:29 | * ... | {EXTERNAL LOCATION} | fn deref | +| main.rs:288:14:288:29 | ...::deref(...) | main.rs:251:5:253:5 | fn deref | +| main.rs:289:5:289:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:291:28:291:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:292:13:292:14 | * ... | main.rs:251:5:253:5 | fn deref | +| main.rs:293:5:293:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:295:28:295:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:297:5:297:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:319:28:319:36 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:321:30:321:54 | ...::take_self(...) | main.rs:309:5:311:5 | fn take_self | +| main.rs:322:5:322:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:325:28:325:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:326:30:326:56 | ...::take_second(...) | main.rs:313:5:315:5 | fn take_second | +| main.rs:327:5:327:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:330:28:330:37 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:331:30:331:54 | ...::take_self(...) | main.rs:309:5:311:5 | fn take_self | +| main.rs:332:5:332:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:336:13:336:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:337:5:337:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:342:13:342:26 | async_source(...) | main.rs:335:1:339:1 | fn async_source | +| main.rs:343:5:343:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:346:17:346:25 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:347:9:347:15 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:350:5:350:17 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:354:13:354:55 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | +| main.rs:354:41:354:54 | async_source(...) | main.rs:335:1:339:1 | fn async_source | +| main.rs:355:5:355:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:357:5:357:62 | ...::block_on(...) | {EXTERNAL LOCATION} | fn block_on | +| main.rs:357:33:357:61 | test_async_await_async_part(...) | main.rs:341:1:351:1 | fn test_async_await_async_part | +| main.rs:367:13:367:29 | self.get_number() | main.rs:378:9:380:9 | fn get_number | +| main.rs:367:13:367:29 | self.get_number() | main.rs:386:9:388:9 | fn get_number | +| main.rs:367:13:367:33 | ... * ... | {EXTERNAL LOCATION} | fn mul | +| main.rs:371:13:371:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:379:13:379:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:391:13:391:22 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:395:13:395:21 | source(...) | main.rs:1:1:3:1 | fn source | +| main.rs:403:18:403:38 | t.get_double_number() | main.rs:366:9:368:9 | fn get_double_number | +| main.rs:404:9:404:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:407:18:407:50 | ...::get_double_number(...) | main.rs:366:9:368:9 | fn get_double_number | +| main.rs:408:9:408:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:411:18:411:37 | ...::get_default(...) | main.rs:370:9:372:9 | fn get_default | +| main.rs:412:9:412:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:415:18:415:38 | i.get_double_number() | main.rs:390:9:392:9 | fn get_double_number | +| main.rs:416:9:416:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:418:18:418:41 | ...::get_default(...) | main.rs:394:9:396:9 | fn get_default | +| main.rs:419:9:419:16 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:424:5:424:22 | data_out_of_call(...) | main.rs:16:1:19:1 | fn data_out_of_call | +| main.rs:425:5:425:35 | data_out_of_call_side_effect1(...) | main.rs:35:1:40:1 | fn data_out_of_call_side_effect1 | +| main.rs:426:5:426:35 | data_out_of_call_side_effect2(...) | main.rs:42:1:50:1 | fn data_out_of_call_side_effect2 | +| main.rs:427:5:427:21 | data_in_to_call(...) | main.rs:56:1:59:1 | fn data_in_to_call | +| main.rs:428:5:428:23 | data_through_call(...) | main.rs:65:1:69:1 | fn data_through_call | +| main.rs:429:5:429:34 | data_through_nested_function(...) | main.rs:79:1:88:1 | fn data_through_nested_function | +| main.rs:431:5:431:24 | data_out_of_method(...) | main.rs:152:1:162:1 | fn data_out_of_method | +| main.rs:432:5:432:28 | data_in_to_method_call(...) | main.rs:169:1:179:1 | fn data_in_to_method_call | +| main.rs:433:5:433:25 | data_through_method(...) | main.rs:187:1:199:1 | fn data_through_method | +| main.rs:435:5:435:31 | test_operator_overloading(...) | main.rs:256:1:298:1 | fn test_operator_overloading | +| main.rs:436:5:436:22 | test_async_await(...) | main.rs:353:1:358:1 | fn test_async_await | diff --git a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected index d8d2a909d9e..043809e6339 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -1,49 +1,52 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | | 2 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | -| 3 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 4 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 5 | Summary: ::into_pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 6 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | -| 7 | Summary: ::pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; value | -| 8 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | -| 9 | Summary: ::map_or; Argument[1].ReturnValue; ReturnValue; value | -| 10 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 11 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | -| 12 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | -| 13 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Reference; ReturnValue.Reference; value | -| 14 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | -| 15 | Summary: ::into_inner_unchecked; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | -| 16 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 17 | Summary: ::new_unchecked; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | -| 18 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 19 | Summary: core::ptr::read; Argument[0].Reference; ReturnValue; value | -| 20 | Summary: core::ptr::write; Argument[1]; Argument[0].Reference; value | +| 3 | Summary: <_ as core::cmp::Ord>::clamp; Argument[self,0,1]; ReturnValue; value | +| 4 | Summary: <_ as core::cmp::Ord>::max; Argument[self,0]; ReturnValue; value | +| 5 | Summary: <_ as core::cmp::Ord>::min; Argument[self,0]; ReturnValue; value | +| 6 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 7 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | +| 8 | Summary: ::into_pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 9 | Summary: ::new; Argument[0]; ReturnValue.Field[alloc::boxed::Box(0)]; value | +| 10 | Summary: ::pin; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; value | +| 11 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | +| 12 | Summary: ::map_or; Argument[1].ReturnValue; ReturnValue; value | +| 13 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 14 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | +| 15 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Field[alloc::boxed::Box(0)]; ReturnValue.Reference; value | +| 16 | Summary: ::deref; Argument[self].Reference.Field[core::pin::Pin::pointer].Reference; ReturnValue.Reference; value | +| 17 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | +| 18 | Summary: ::into_inner_unchecked; Argument[0].Field[core::pin::Pin::pointer]; ReturnValue; value | +| 19 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 20 | Summary: ::new_unchecked; Argument[0]; ReturnValue.Field[core::pin::Pin::pointer]; value | +| 21 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 22 | Summary: core::ptr::read; Argument[0].Reference; ReturnValue; value | +| 23 | Summary: core::ptr::write; Argument[1]; Argument[0].Reference; value | edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:10 | a [Some] | provenance | | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | | main.rs:12:13:12:28 | Some(...) [Some] | main.rs:12:9:12:9 | a [Some] | provenance | | | main.rs:12:18:12:27 | source(...) | main.rs:12:13:12:28 | Some(...) [Some] | provenance | | -| main.rs:13:10:13:10 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:10 | +| main.rs:13:10:13:10 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:13 | | main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:10 | b [Some] | provenance | | | main.rs:14:13:14:13 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | MaD:2 | | main.rs:14:13:14:21 | a.clone() [Some] | main.rs:14:9:14:9 | b [Some] | provenance | | -| main.rs:15:10:15:10 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:10 | +| main.rs:15:10:15:10 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:13 | | main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:10 | a [Ok] | provenance | | | main.rs:19:9:19:9 | a [Ok] | main.rs:21:13:21:13 | a [Ok] | provenance | | | main.rs:19:31:19:44 | Ok(...) [Ok] | main.rs:19:9:19:9 | a [Ok] | provenance | | | main.rs:19:34:19:43 | source(...) | main.rs:19:31:19:44 | Ok(...) [Ok] | provenance | | -| main.rs:20:10:20:10 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:18 | +| main.rs:20:10:20:10 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:21 | | main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:10 | b [Ok] | provenance | | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | MaD:2 | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | -| main.rs:22:10:22:10 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:18 | +| main.rs:22:10:22:10 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:21 | | main.rs:26:9:26:9 | a | main.rs:27:10:27:10 | a | provenance | | | main.rs:26:9:26:9 | a | main.rs:28:13:28:13 | a | provenance | | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | a | provenance | | | main.rs:28:9:28:9 | b | main.rs:29:10:29:10 | b | provenance | | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:2 | -| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:8 | +| main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | MaD:11 | | main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:43:18:43:22 | SelfParam [&ref, Wrapper] | main.rs:44:26:44:29 | self [&ref, Wrapper] | provenance | | | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | provenance | | @@ -68,19 +71,19 @@ edges | main.rs:66:22:66:31 | source(...) | main.rs:66:17:66:32 | Some(...) [Some] | provenance | | | main.rs:67:13:67:13 | z [Some, tuple.1] | main.rs:68:15:68:15 | z [Some, tuple.1] | provenance | | | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | main.rs:67:13:67:13 | z [Some, tuple.1] | provenance | | -| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:11 | +| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:14 | | main.rs:68:15:68:15 | z [Some, tuple.1] | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | provenance | | | main.rs:69:13:69:24 | Some(...) [Some, tuple.1] | main.rs:69:18:69:23 | TuplePat [tuple.1] | provenance | | | main.rs:69:18:69:23 | TuplePat [tuple.1] | main.rs:69:22:69:22 | m | provenance | | | main.rs:69:22:69:22 | m | main.rs:71:22:71:22 | m | provenance | | | main.rs:79:13:79:13 | b | main.rs:80:14:80:14 | b | provenance | | | main.rs:79:17:79:47 | a.map_or(...) | main.rs:79:13:79:13 | b | provenance | | -| main.rs:79:33:79:46 | ... + ... | main.rs:79:17:79:47 | a.map_or(...) | provenance | MaD:9 | -| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:3 | -| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:4 | +| main.rs:79:33:79:46 | ... + ... | main.rs:79:17:79:47 | a.map_or(...) | provenance | MaD:12 | +| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:6 | +| main.rs:79:37:79:46 | source(...) | main.rs:79:33:79:46 | ... + ... | provenance | MaD:7 | | main.rs:92:29:92:29 | [post] y [&ref] | main.rs:93:33:93:33 | y [&ref] | provenance | | -| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:20 | -| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:19 | +| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:23 | +| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:22 | | main.rs:108:13:108:17 | mut i | main.rs:109:34:109:34 | i | provenance | | | main.rs:108:13:108:17 | mut i | main.rs:110:33:110:33 | i | provenance | | | main.rs:108:13:108:17 | mut i | main.rs:111:47:111:47 | i | provenance | | @@ -90,46 +93,73 @@ edges | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | main.rs:114:15:114:18 | pin1 [Pin, &ref] | provenance | | | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | main.rs:115:31:115:34 | pin1 [Pin, &ref] | provenance | | | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | main.rs:109:13:109:20 | mut pin1 [Pin, &ref] | provenance | | -| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:16 | +| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:19 | | main.rs:109:34:109:34 | i | main.rs:109:33:109:34 | &i [&ref] | provenance | | | main.rs:110:13:110:20 | mut pin2 [Pin, Box(0)] | main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | provenance | | | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | main.rs:110:13:110:20 | mut pin2 [Pin, Box(0)] | provenance | | -| main.rs:110:33:110:33 | i | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | provenance | MaD:7 | +| main.rs:110:33:110:33 | i | main.rs:110:24:110:34 | ...::pin(...) [Pin, Box(0)] | provenance | MaD:10 | | main.rs:111:13:111:20 | mut pin3 [Pin, Box(0)] | main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | provenance | | | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | main.rs:111:13:111:20 | mut pin3 [Pin, Box(0)] | provenance | | -| main.rs:111:38:111:48 | ...::new(...) [Box(0)] | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | provenance | MaD:5 | -| main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [Box(0)] | provenance | MaD:6 | +| main.rs:111:38:111:48 | ...::new(...) [Box(0)] | main.rs:111:24:111:49 | ...::into_pin(...) [Pin, Box(0)] | provenance | MaD:8 | +| main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [Box(0)] | provenance | MaD:9 | | main.rs:112:13:112:20 | mut pin4 [Pin, &ref] | main.rs:118:15:118:18 | pin4 [Pin, &ref] | provenance | | -| main.rs:112:24:112:27 | &mut pinned [&ref] | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | provenance | MaD:17 | +| main.rs:112:24:112:27 | &mut pinned [&ref] | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | provenance | MaD:20 | | main.rs:112:24:112:27 | ...::new_unchecked(...) [Pin, &ref] | main.rs:112:13:112:20 | mut pin4 [Pin, &ref] | provenance | | | main.rs:112:24:112:27 | mut pinned | main.rs:112:24:112:27 | pinned | provenance | | | main.rs:112:24:112:27 | pinned | main.rs:112:24:112:27 | &mut pinned [&ref] | provenance | | -| main.rs:114:15:114:18 | pin1 [Pin, &ref] | main.rs:114:14:114:18 | * ... | provenance | MaD:13 | +| main.rs:114:15:114:18 | pin1 [Pin, &ref] | main.rs:114:14:114:18 | * ... | provenance | MaD:16 | | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | main.rs:115:14:115:35 | * ... | provenance | MaD:1 | -| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:14 | -| main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | main.rs:116:14:116:18 | * ... | provenance | MaD:12 | -| main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | main.rs:117:14:117:18 | * ... | provenance | MaD:12 | -| main.rs:118:15:118:18 | pin4 [Pin, &ref] | main.rs:118:14:118:18 | * ... | provenance | MaD:13 | +| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:17 | +| main.rs:116:15:116:18 | pin2 [Pin, Box(0)] | main.rs:116:14:116:18 | * ... | provenance | MaD:15 | +| main.rs:117:15:117:18 | pin3 [Pin, Box(0)] | main.rs:117:14:117:18 | * ... | provenance | MaD:15 | +| main.rs:118:15:118:18 | pin4 [Pin, &ref] | main.rs:118:14:118:18 | * ... | provenance | MaD:16 | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:123:34:123:35 | ms [MyStruct] | provenance | | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:127:14:127:15 | ms [MyStruct] | provenance | | | main.rs:122:22:122:49 | MyStruct {...} [MyStruct] | main.rs:122:13:122:18 | mut ms [MyStruct] | provenance | | | main.rs:122:38:122:47 | source(...) | main.rs:122:22:122:49 | MyStruct {...} [MyStruct] | provenance | | | main.rs:123:13:123:20 | mut pin1 [Pin, &ref, MyStruct] | main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | provenance | | | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | main.rs:123:13:123:20 | mut pin1 [Pin, &ref, MyStruct] | provenance | | -| main.rs:123:33:123:35 | &ms [&ref, MyStruct] | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | provenance | MaD:16 | +| main.rs:123:33:123:35 | &ms [&ref, MyStruct] | main.rs:123:24:123:36 | ...::new(...) [Pin, &ref, MyStruct] | provenance | MaD:19 | | main.rs:123:34:123:35 | ms [MyStruct] | main.rs:123:33:123:35 | &ms [&ref, MyStruct] | provenance | | | main.rs:127:14:127:15 | ms [MyStruct] | main.rs:127:14:127:19 | ms.val | provenance | | | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | main.rs:129:14:129:38 | ... .val | provenance | | -| main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | provenance | MaD:14 | +| main.rs:129:30:129:33 | pin1 [Pin, &ref, MyStruct] | main.rs:129:14:129:34 | ...::into_inner(...) [&ref, MyStruct] | provenance | MaD:17 | | main.rs:136:13:136:18 | mut ms [MyStruct] | main.rs:137:44:137:45 | ms [MyStruct] | provenance | | | main.rs:136:22:136:49 | MyStruct {...} [MyStruct] | main.rs:136:13:136:18 | mut ms [MyStruct] | provenance | | | main.rs:136:38:136:47 | source(...) | main.rs:136:22:136:49 | MyStruct {...} [MyStruct] | provenance | | | main.rs:137:13:137:20 | mut pin5 [Pin, &ref, MyStruct] | main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | provenance | | | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | main.rs:137:13:137:20 | mut pin5 [Pin, &ref, MyStruct] | provenance | | -| main.rs:137:43:137:45 | &ms [&ref, MyStruct] | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | provenance | MaD:17 | +| main.rs:137:43:137:45 | &ms [&ref, MyStruct] | main.rs:137:24:137:46 | ...::new_unchecked(...) [Pin, &ref, MyStruct] | provenance | MaD:20 | | main.rs:137:44:137:45 | ms [MyStruct] | main.rs:137:43:137:45 | &ms [&ref, MyStruct] | provenance | | | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | main.rs:139:14:139:48 | ... .val | provenance | | -| main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | provenance | MaD:15 | +| main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | provenance | MaD:18 | +| main.rs:153:9:153:9 | a | main.rs:155:13:155:13 | a | provenance | | +| main.rs:153:13:153:22 | source(...) | main.rs:153:9:153:9 | a | provenance | | +| main.rs:154:9:154:9 | b | main.rs:155:19:155:19 | b | provenance | | +| main.rs:154:13:154:22 | source(...) | main.rs:154:9:154:9 | b | provenance | | +| main.rs:155:9:155:9 | c | main.rs:156:10:156:10 | c | provenance | | +| main.rs:155:13:155:13 | a | main.rs:155:13:155:20 | a.min(...) | provenance | MaD:5 | +| main.rs:155:13:155:20 | a.min(...) | main.rs:155:9:155:9 | c | provenance | | +| main.rs:155:19:155:19 | b | main.rs:155:13:155:20 | a.min(...) | provenance | MaD:5 | +| main.rs:158:9:158:9 | d | main.rs:160:13:160:13 | d | provenance | | +| main.rs:158:13:158:22 | source(...) | main.rs:158:9:158:9 | d | provenance | | +| main.rs:159:9:159:9 | e | main.rs:160:19:160:19 | e | provenance | | +| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | e | provenance | | +| main.rs:160:9:160:9 | f | main.rs:161:10:161:10 | f | provenance | | +| main.rs:160:13:160:13 | d | main.rs:160:13:160:20 | d.max(...) | provenance | MaD:4 | +| main.rs:160:13:160:20 | d.max(...) | main.rs:160:9:160:9 | f | provenance | | +| main.rs:160:19:160:19 | e | main.rs:160:13:160:20 | d.max(...) | provenance | MaD:4 | +| main.rs:163:9:163:9 | g | main.rs:166:13:166:13 | g | provenance | | +| main.rs:163:13:163:22 | source(...) | main.rs:163:9:163:9 | g | provenance | | +| main.rs:164:9:164:9 | h | main.rs:166:21:166:21 | h | provenance | | +| main.rs:164:13:164:22 | source(...) | main.rs:164:9:164:9 | h | provenance | | +| main.rs:165:9:165:9 | i | main.rs:166:24:166:24 | i | provenance | | +| main.rs:165:13:165:22 | source(...) | main.rs:165:9:165:9 | i | provenance | | +| main.rs:166:9:166:9 | j | main.rs:167:10:167:10 | j | provenance | | +| main.rs:166:13:166:13 | g | main.rs:166:13:166:25 | g.clamp(...) | provenance | MaD:3 | +| main.rs:166:13:166:25 | g.clamp(...) | main.rs:166:9:166:9 | j | provenance | | +| main.rs:166:21:166:21 | h | main.rs:166:13:166:25 | g.clamp(...) | provenance | MaD:3 | +| main.rs:166:24:166:24 | i | main.rs:166:13:166:25 | g.clamp(...) | provenance | MaD:3 | nodes | main.rs:12:9:12:9 | a [Some] | semmle.label | a [Some] | | main.rs:12:13:12:28 | Some(...) [Some] | semmle.label | Some(...) [Some] | @@ -249,6 +279,36 @@ nodes | main.rs:139:14:139:44 | ...::into_inner_unchecked(...) [&ref, MyStruct] | semmle.label | ...::into_inner_unchecked(...) [&ref, MyStruct] | | main.rs:139:14:139:48 | ... .val | semmle.label | ... .val | | main.rs:139:40:139:43 | pin5 [Pin, &ref, MyStruct] | semmle.label | pin5 [Pin, &ref, MyStruct] | +| main.rs:153:9:153:9 | a | semmle.label | a | +| main.rs:153:13:153:22 | source(...) | semmle.label | source(...) | +| main.rs:154:9:154:9 | b | semmle.label | b | +| main.rs:154:13:154:22 | source(...) | semmle.label | source(...) | +| main.rs:155:9:155:9 | c | semmle.label | c | +| main.rs:155:13:155:13 | a | semmle.label | a | +| main.rs:155:13:155:20 | a.min(...) | semmle.label | a.min(...) | +| main.rs:155:19:155:19 | b | semmle.label | b | +| main.rs:156:10:156:10 | c | semmle.label | c | +| main.rs:158:9:158:9 | d | semmle.label | d | +| main.rs:158:13:158:22 | source(...) | semmle.label | source(...) | +| main.rs:159:9:159:9 | e | semmle.label | e | +| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | +| main.rs:160:9:160:9 | f | semmle.label | f | +| main.rs:160:13:160:13 | d | semmle.label | d | +| main.rs:160:13:160:20 | d.max(...) | semmle.label | d.max(...) | +| main.rs:160:19:160:19 | e | semmle.label | e | +| main.rs:161:10:161:10 | f | semmle.label | f | +| main.rs:163:9:163:9 | g | semmle.label | g | +| main.rs:163:13:163:22 | source(...) | semmle.label | source(...) | +| main.rs:164:9:164:9 | h | semmle.label | h | +| main.rs:164:13:164:22 | source(...) | semmle.label | source(...) | +| main.rs:165:9:165:9 | i | semmle.label | i | +| main.rs:165:13:165:22 | source(...) | semmle.label | source(...) | +| main.rs:166:9:166:9 | j | semmle.label | j | +| main.rs:166:13:166:13 | g | semmle.label | g | +| main.rs:166:13:166:25 | g.clamp(...) | semmle.label | g.clamp(...) | +| main.rs:166:21:166:21 | h | semmle.label | h | +| main.rs:166:24:166:24 | i | semmle.label | i | +| main.rs:167:10:167:10 | j | semmle.label | j | subpaths | main.rs:53:17:53:17 | w [Wrapper] | main.rs:43:18:43:22 | SelfParam [&ref, Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | main.rs:53:17:53:25 | w.clone() [Wrapper] | testFailures @@ -273,3 +333,10 @@ testFailures | main.rs:127:14:127:19 | ms.val | main.rs:122:38:122:47 | source(...) | main.rs:127:14:127:19 | ms.val | $@ | main.rs:122:38:122:47 | source(...) | source(...) | | main.rs:129:14:129:38 | ... .val | main.rs:122:38:122:47 | source(...) | main.rs:129:14:129:38 | ... .val | $@ | main.rs:122:38:122:47 | source(...) | source(...) | | main.rs:139:14:139:48 | ... .val | main.rs:136:38:136:47 | source(...) | main.rs:139:14:139:48 | ... .val | $@ | main.rs:136:38:136:47 | source(...) | source(...) | +| main.rs:156:10:156:10 | c | main.rs:153:13:153:22 | source(...) | main.rs:156:10:156:10 | c | $@ | main.rs:153:13:153:22 | source(...) | source(...) | +| main.rs:156:10:156:10 | c | main.rs:154:13:154:22 | source(...) | main.rs:156:10:156:10 | c | $@ | main.rs:154:13:154:22 | source(...) | source(...) | +| main.rs:161:10:161:10 | f | main.rs:158:13:158:22 | source(...) | main.rs:161:10:161:10 | f | $@ | main.rs:158:13:158:22 | source(...) | source(...) | +| main.rs:161:10:161:10 | f | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:10 | f | $@ | main.rs:159:13:159:22 | source(...) | source(...) | +| main.rs:167:10:167:10 | j | main.rs:163:13:163:22 | source(...) | main.rs:167:10:167:10 | j | $@ | main.rs:163:13:163:22 | source(...) | source(...) | +| main.rs:167:10:167:10 | j | main.rs:164:13:164:22 | source(...) | main.rs:167:10:167:10 | j | $@ | main.rs:164:13:164:22 | source(...) | source(...) | +| main.rs:167:10:167:10 | j | main.rs:165:13:165:22 | source(...) | main.rs:167:10:167:10 | j | $@ | main.rs:165:13:165:22 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index eb5a8de5256..09943a81b8a 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -149,10 +149,29 @@ fn test_pin() { } } +fn test_ord() { + let a = source(50); + let b = source(51); + let c = a.min(b); + sink(c); // $ hasValueFlow=50 hasValueFlow=51 + + let d = source(52); + let e = source(53); + let f = d.max(e); + sink(f); // $ hasValueFlow=52 hasValueFlow=53 + + let g = source(54); + let h = source(55); + let i = source(56); + let j = g.clamp(h, i); + sink(j); // $ hasValueFlow=54 hasValueFlow=55 hasValueFlow=56 +} + fn main() { option_clone(); result_clone(); i64_clone(); my_clone::wrapper_clone(); test_pin(); + test_ord(); } diff --git a/rust/ql/test/library-tests/dataflow/models/main.rs b/rust/ql/test/library-tests/dataflow/models/main.rs index 7daa883996f..7395205a7fc 100644 --- a/rust/ql/test/library-tests/dataflow/models/main.rs +++ b/rust/ql/test/library-tests/dataflow/models/main.rs @@ -31,6 +31,20 @@ enum MyPosEnum { B(i64), } +// has a manual flow model with flow from second argument to the return value +// and a wrong generated model with flow from first argument to the return value +fn snd(a: i64, b: i64) -> i64 { + 0 +} + +fn test_snd() { + let s1 = source(99); + sink(snd(0, s1)); // $ hasValueFlow=99 + + let s2 = source(88); + sink(snd(s2, 0)); +} + // has a flow model fn get_var_pos(e: MyPosEnum) -> i64 { 0 diff --git a/rust/ql/test/library-tests/dataflow/models/models.expected b/rust/ql/test/library-tests/dataflow/models/models.expected index 90133f0e6a9..f9848542dd7 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.expected +++ b/rust/ql/test/library-tests/dataflow/models/models.expected @@ -7,7 +7,7 @@ models | 6 | Source: main::enum_source; ReturnValue.Field[main::MyFieldEnum::D::field_d]; test-source | | 7 | Source: main::simple_source; ReturnValue; test-source | | 8 | Source: main::source_into_function::pass_source; Argument[1].Parameter[0]; test-source | -| 9 | Summary: <_ as core::cmp::Ord>::max; Argument[self]; ReturnValue; value | +| 9 | Summary: <_ as core::cmp::Ord>::max; Argument[self,0]; ReturnValue; value | | 10 | Summary: <_ as core::cmp::PartialOrd>::lt; Argument[self].Reference; ReturnValue; taint | | 11 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | | 12 | Summary: main::apply; Argument[0]; Argument[1].Parameter[0]; value | @@ -24,6 +24,7 @@ models | 23 | Summary: main::set_tuple_element; Argument[0]; ReturnValue.Field[1]; value | | 24 | Summary: main::set_var_field; Argument[0]; ReturnValue.Field[main::MyFieldEnum::D::field_d]; value | | 25 | Summary: main::set_var_pos; Argument[0]; ReturnValue.Field[main::MyPosEnum::B(0)]; value | +| 26 | Summary: main::snd; Argument[1]; ReturnValue; value | edges | main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | | | main.rs:15:9:15:9 | s | main.rs:16:19:16:19 | s | provenance | | @@ -34,284 +35,290 @@ edges | main.rs:25:9:25:9 | s | main.rs:26:17:26:17 | s | provenance | | | main.rs:25:13:25:22 | source(...) | main.rs:25:9:25:9 | s | provenance | | | main.rs:26:17:26:17 | s | main.rs:26:10:26:18 | coerce(...) | provenance | MaD:14 | -| main.rs:40:9:40:9 | s | main.rs:41:27:41:27 | s | provenance | | -| main.rs:40:9:40:9 | s | main.rs:41:27:41:27 | s | provenance | | -| main.rs:40:13:40:21 | source(...) | main.rs:40:9:40:9 | s | provenance | | -| main.rs:40:13:40:21 | source(...) | main.rs:40:9:40:9 | s | provenance | | -| main.rs:41:9:41:10 | e1 [A] | main.rs:42:22:42:23 | e1 [A] | provenance | | -| main.rs:41:9:41:10 | e1 [A] | main.rs:42:22:42:23 | e1 [A] | provenance | | -| main.rs:41:14:41:28 | ...::A(...) [A] | main.rs:41:9:41:10 | e1 [A] | provenance | | -| main.rs:41:14:41:28 | ...::A(...) [A] | main.rs:41:9:41:10 | e1 [A] | provenance | | -| main.rs:41:27:41:27 | s | main.rs:41:14:41:28 | ...::A(...) [A] | provenance | | -| main.rs:41:27:41:27 | s | main.rs:41:14:41:28 | ...::A(...) [A] | provenance | | -| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:20 | -| main.rs:42:22:42:23 | e1 [A] | main.rs:42:10:42:24 | get_var_pos(...) | provenance | MaD:20 | -| main.rs:53:9:53:9 | s | main.rs:54:26:54:26 | s | provenance | | -| main.rs:53:9:53:9 | s | main.rs:54:26:54:26 | s | provenance | | -| main.rs:53:13:53:21 | source(...) | main.rs:53:9:53:9 | s | provenance | | -| main.rs:53:13:53:21 | source(...) | main.rs:53:9:53:9 | s | provenance | | -| main.rs:54:9:54:10 | e1 [B] | main.rs:55:11:55:12 | e1 [B] | provenance | | -| main.rs:54:9:54:10 | e1 [B] | main.rs:55:11:55:12 | e1 [B] | provenance | | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | main.rs:54:9:54:10 | e1 [B] | provenance | | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | main.rs:54:9:54:10 | e1 [B] | provenance | | -| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:25 | -| main.rs:54:26:54:26 | s | main.rs:54:14:54:27 | set_var_pos(...) [B] | provenance | MaD:25 | -| main.rs:55:11:55:12 | e1 [B] | main.rs:57:9:57:23 | ...::B(...) [B] | provenance | | -| main.rs:55:11:55:12 | e1 [B] | main.rs:57:9:57:23 | ...::B(...) [B] | provenance | | -| main.rs:57:9:57:23 | ...::B(...) [B] | main.rs:57:22:57:22 | i | provenance | | -| main.rs:57:9:57:23 | ...::B(...) [B] | main.rs:57:22:57:22 | i | provenance | | -| main.rs:57:22:57:22 | i | main.rs:57:33:57:33 | i | provenance | | -| main.rs:57:22:57:22 | i | main.rs:57:33:57:33 | i | provenance | | -| main.rs:72:9:72:9 | s | main.rs:73:40:73:40 | s | provenance | | -| main.rs:72:9:72:9 | s | main.rs:73:40:73:40 | s | provenance | | -| main.rs:72:13:72:21 | source(...) | main.rs:72:9:72:9 | s | provenance | | -| main.rs:72:13:72:21 | source(...) | main.rs:72:9:72:9 | s | provenance | | -| main.rs:73:9:73:10 | e1 [C] | main.rs:74:24:74:25 | e1 [C] | provenance | | -| main.rs:73:9:73:10 | e1 [C] | main.rs:74:24:74:25 | e1 [C] | provenance | | -| main.rs:73:14:73:42 | ...::C {...} [C] | main.rs:73:9:73:10 | e1 [C] | provenance | | -| main.rs:73:14:73:42 | ...::C {...} [C] | main.rs:73:9:73:10 | e1 [C] | provenance | | -| main.rs:73:40:73:40 | s | main.rs:73:14:73:42 | ...::C {...} [C] | provenance | | -| main.rs:73:40:73:40 | s | main.rs:73:14:73:42 | ...::C {...} [C] | provenance | | -| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:19 | -| main.rs:74:24:74:25 | e1 [C] | main.rs:74:10:74:26 | get_var_field(...) | provenance | MaD:19 | -| main.rs:85:9:85:9 | s | main.rs:86:28:86:28 | s | provenance | | -| main.rs:85:9:85:9 | s | main.rs:86:28:86:28 | s | provenance | | -| main.rs:85:13:85:21 | source(...) | main.rs:85:9:85:9 | s | provenance | | -| main.rs:85:13:85:21 | source(...) | main.rs:85:9:85:9 | s | provenance | | -| main.rs:86:9:86:10 | e1 [D] | main.rs:87:11:87:12 | e1 [D] | provenance | | -| main.rs:86:9:86:10 | e1 [D] | main.rs:87:11:87:12 | e1 [D] | provenance | | -| main.rs:86:14:86:29 | set_var_field(...) [D] | main.rs:86:9:86:10 | e1 [D] | provenance | | -| main.rs:86:14:86:29 | set_var_field(...) [D] | main.rs:86:9:86:10 | e1 [D] | provenance | | -| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:24 | -| main.rs:86:28:86:28 | s | main.rs:86:14:86:29 | set_var_field(...) [D] | provenance | MaD:24 | -| main.rs:87:11:87:12 | e1 [D] | main.rs:89:9:89:37 | ...::D {...} [D] | provenance | | -| main.rs:87:11:87:12 | e1 [D] | main.rs:89:9:89:37 | ...::D {...} [D] | provenance | | -| main.rs:89:9:89:37 | ...::D {...} [D] | main.rs:89:35:89:35 | i | provenance | | -| main.rs:89:9:89:37 | ...::D {...} [D] | main.rs:89:35:89:35 | i | provenance | | -| main.rs:89:35:89:35 | i | main.rs:89:47:89:47 | i | provenance | | -| main.rs:89:35:89:35 | i | main.rs:89:47:89:47 | i | provenance | | -| main.rs:104:9:104:9 | s | main.rs:106:17:106:17 | s | provenance | | -| main.rs:104:9:104:9 | s | main.rs:106:17:106:17 | s | provenance | | -| main.rs:104:13:104:21 | source(...) | main.rs:104:9:104:9 | s | provenance | | -| main.rs:104:13:104:21 | source(...) | main.rs:104:9:104:9 | s | provenance | | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | main.rs:109:27:109:35 | my_struct [MyStruct.field1] | provenance | | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | main.rs:109:27:109:35 | my_struct [MyStruct.field1] | provenance | | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | main.rs:105:9:105:17 | my_struct [MyStruct.field1] | provenance | | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | main.rs:105:9:105:17 | my_struct [MyStruct.field1] | provenance | | -| main.rs:106:17:106:17 | s | main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:106:17:106:17 | s | main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:17 | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | main.rs:109:10:109:36 | get_struct_field(...) | provenance | MaD:17 | -| main.rs:126:9:126:9 | s | main.rs:127:38:127:38 | s | provenance | | -| main.rs:126:9:126:9 | s | main.rs:127:38:127:38 | s | provenance | | -| main.rs:126:13:126:21 | source(...) | main.rs:126:9:126:9 | s | provenance | | -| main.rs:126:13:126:21 | source(...) | main.rs:126:9:126:9 | s | provenance | | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | main.rs:129:10:129:18 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | main.rs:129:10:129:18 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | main.rs:127:9:127:17 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | main.rs:127:9:127:17 | my_struct [MyStruct.field2] | provenance | | -| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | -| main.rs:127:38:127:38 | s | main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | main.rs:129:10:129:25 | my_struct.field2 | provenance | | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | main.rs:129:10:129:25 | my_struct.field2 | provenance | | -| main.rs:138:9:138:9 | s | main.rs:139:29:139:29 | s | provenance | | -| main.rs:138:9:138:9 | s | main.rs:139:29:139:29 | s | provenance | | -| main.rs:138:13:138:21 | source(...) | main.rs:138:9:138:9 | s | provenance | | -| main.rs:138:13:138:21 | source(...) | main.rs:138:9:138:9 | s | provenance | | -| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:15 | -| main.rs:139:28:139:30 | [...] [element] | main.rs:139:10:139:31 | get_array_element(...) | provenance | MaD:15 | -| main.rs:139:29:139:29 | s | main.rs:139:28:139:30 | [...] [element] | provenance | | -| main.rs:139:29:139:29 | s | main.rs:139:28:139:30 | [...] [element] | provenance | | -| main.rs:148:9:148:9 | s | main.rs:149:33:149:33 | s | provenance | | -| main.rs:148:9:148:9 | s | main.rs:149:33:149:33 | s | provenance | | -| main.rs:148:13:148:21 | source(...) | main.rs:148:9:148:9 | s | provenance | | -| main.rs:148:13:148:21 | source(...) | main.rs:148:9:148:9 | s | provenance | | -| main.rs:149:9:149:11 | arr [element] | main.rs:150:10:150:12 | arr [element] | provenance | | -| main.rs:149:9:149:11 | arr [element] | main.rs:150:10:150:12 | arr [element] | provenance | | -| main.rs:149:15:149:34 | set_array_element(...) [element] | main.rs:149:9:149:11 | arr [element] | provenance | | -| main.rs:149:15:149:34 | set_array_element(...) [element] | main.rs:149:9:149:11 | arr [element] | provenance | | -| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:21 | -| main.rs:149:33:149:33 | s | main.rs:149:15:149:34 | set_array_element(...) [element] | provenance | MaD:21 | -| main.rs:150:10:150:12 | arr [element] | main.rs:150:10:150:15 | arr[0] | provenance | MaD:11 | -| main.rs:150:10:150:12 | arr [element] | main.rs:150:10:150:15 | arr[0] | provenance | MaD:11 | -| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | | -| main.rs:159:9:159:9 | s | main.rs:160:14:160:14 | s | provenance | | -| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | s | provenance | | -| main.rs:159:13:159:22 | source(...) | main.rs:159:9:159:9 | s | provenance | | -| main.rs:160:9:160:9 | t [tuple.0] | main.rs:161:28:161:28 | t [tuple.0] | provenance | | -| main.rs:160:9:160:9 | t [tuple.0] | main.rs:161:28:161:28 | t [tuple.0] | provenance | | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | main.rs:160:9:160:9 | t [tuple.0] | provenance | | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | main.rs:160:9:160:9 | t [tuple.0] | provenance | | -| main.rs:160:14:160:14 | s | main.rs:160:13:160:18 | TupleExpr [tuple.0] | provenance | | -| main.rs:160:14:160:14 | s | main.rs:160:13:160:18 | TupleExpr [tuple.0] | provenance | | -| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:18 | -| main.rs:161:28:161:28 | t [tuple.0] | main.rs:161:10:161:29 | get_tuple_element(...) | provenance | MaD:18 | -| main.rs:172:9:172:9 | s | main.rs:173:31:173:31 | s | provenance | | -| main.rs:172:9:172:9 | s | main.rs:173:31:173:31 | s | provenance | | -| main.rs:172:13:172:22 | source(...) | main.rs:172:9:172:9 | s | provenance | | -| main.rs:172:13:172:22 | source(...) | main.rs:172:9:172:9 | s | provenance | | -| main.rs:173:9:173:9 | t [tuple.1] | main.rs:175:10:175:10 | t [tuple.1] | provenance | | -| main.rs:173:9:173:9 | t [tuple.1] | main.rs:175:10:175:10 | t [tuple.1] | provenance | | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | main.rs:173:9:173:9 | t [tuple.1] | provenance | | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | main.rs:173:9:173:9 | t [tuple.1] | provenance | | -| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | -| main.rs:173:31:173:31 | s | main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | -| main.rs:175:10:175:10 | t [tuple.1] | main.rs:175:10:175:12 | t.1 | provenance | | -| main.rs:175:10:175:10 | t [tuple.1] | main.rs:175:10:175:12 | t.1 | provenance | | -| main.rs:187:9:187:9 | s | main.rs:192:11:192:11 | s | provenance | | -| main.rs:187:9:187:9 | s | main.rs:192:11:192:11 | s | provenance | | -| main.rs:187:13:187:22 | source(...) | main.rs:187:9:187:9 | s | provenance | | -| main.rs:187:13:187:22 | source(...) | main.rs:187:9:187:9 | s | provenance | | -| main.rs:188:14:188:14 | ... | main.rs:189:14:189:14 | n | provenance | | -| main.rs:188:14:188:14 | ... | main.rs:189:14:189:14 | n | provenance | | -| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:12 | -| main.rs:192:11:192:11 | s | main.rs:188:14:188:14 | ... | provenance | MaD:12 | -| main.rs:196:13:196:22 | source(...) | main.rs:198:23:198:23 | f [captured s] | provenance | | -| main.rs:196:13:196:22 | source(...) | main.rs:198:23:198:23 | f [captured s] | provenance | | -| main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | provenance | | -| main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | provenance | | -| main.rs:198:9:198:9 | t | main.rs:199:10:199:10 | t | provenance | | -| main.rs:198:9:198:9 | t | main.rs:199:10:199:10 | t | provenance | | -| main.rs:198:13:198:24 | apply(...) | main.rs:198:9:198:9 | t | provenance | | -| main.rs:198:13:198:24 | apply(...) | main.rs:198:9:198:9 | t | provenance | | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:13 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | provenance | MaD:13 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:12 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:13 | -| main.rs:198:23:198:23 | f [captured s] | main.rs:198:13:198:24 | apply(...) | provenance | MaD:13 | -| main.rs:203:9:203:9 | s | main.rs:205:19:205:19 | s | provenance | | -| main.rs:203:9:203:9 | s | main.rs:205:19:205:19 | s | provenance | | -| main.rs:203:13:203:22 | source(...) | main.rs:203:9:203:9 | s | provenance | | -| main.rs:203:13:203:22 | source(...) | main.rs:203:9:203:9 | s | provenance | | -| main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | provenance | | -| main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | provenance | | -| main.rs:205:9:205:9 | t | main.rs:206:10:206:10 | t | provenance | | -| main.rs:205:9:205:9 | t | main.rs:206:10:206:10 | t | provenance | | -| main.rs:205:13:205:23 | apply(...) | main.rs:205:9:205:9 | t | provenance | | -| main.rs:205:13:205:23 | apply(...) | main.rs:205:9:205:9 | t | provenance | | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:12 | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | provenance | MaD:12 | -| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:12 | -| main.rs:205:19:205:19 | s | main.rs:205:13:205:23 | apply(...) | provenance | MaD:12 | -| main.rs:215:9:215:9 | s | main.rs:216:30:216:30 | s | provenance | | -| main.rs:215:9:215:9 | s | main.rs:216:30:216:30 | s | provenance | | -| main.rs:215:13:215:22 | source(...) | main.rs:215:9:215:9 | s | provenance | | -| main.rs:215:13:215:22 | source(...) | main.rs:215:9:215:9 | s | provenance | | -| main.rs:216:9:216:9 | t | main.rs:217:10:217:10 | t | provenance | | -| main.rs:216:9:216:9 | t | main.rs:217:10:217:10 | t | provenance | | -| main.rs:216:13:216:31 | get_async_number(...) [future] | main.rs:216:13:216:37 | await ... | provenance | | -| main.rs:216:13:216:31 | get_async_number(...) [future] | main.rs:216:13:216:37 | await ... | provenance | | -| main.rs:216:13:216:37 | await ... | main.rs:216:9:216:9 | t | provenance | | -| main.rs:216:13:216:37 | await ... | main.rs:216:9:216:9 | t | provenance | | -| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:16 | -| main.rs:216:30:216:30 | s | main.rs:216:13:216:31 | get_async_number(...) [future] | provenance | MaD:16 | -| main.rs:236:9:236:9 | s [D] | main.rs:237:11:237:11 | s [D] | provenance | | -| main.rs:236:9:236:9 | s [D] | main.rs:237:11:237:11 | s [D] | provenance | | -| main.rs:236:13:236:23 | enum_source | main.rs:236:13:236:27 | enum_source(...) [D] | provenance | Src:MaD:6 | -| main.rs:236:13:236:23 | enum_source | main.rs:236:13:236:27 | enum_source(...) [D] | provenance | Src:MaD:6 | -| main.rs:236:13:236:27 | enum_source(...) [D] | main.rs:236:9:236:9 | s [D] | provenance | | -| main.rs:236:13:236:27 | enum_source(...) [D] | main.rs:236:9:236:9 | s [D] | provenance | | -| main.rs:237:11:237:11 | s [D] | main.rs:239:9:239:37 | ...::D {...} [D] | provenance | | -| main.rs:237:11:237:11 | s [D] | main.rs:239:9:239:37 | ...::D {...} [D] | provenance | | -| main.rs:239:9:239:37 | ...::D {...} [D] | main.rs:239:35:239:35 | i | provenance | | -| main.rs:239:9:239:37 | ...::D {...} [D] | main.rs:239:35:239:35 | i | provenance | | -| main.rs:239:35:239:35 | i | main.rs:239:47:239:47 | i | provenance | | -| main.rs:239:35:239:35 | i | main.rs:239:47:239:47 | i | provenance | | -| main.rs:245:9:245:9 | s [C] | main.rs:246:11:246:11 | s [C] | provenance | | -| main.rs:245:9:245:9 | s [C] | main.rs:246:11:246:11 | s [C] | provenance | | -| main.rs:245:13:245:24 | e.source(...) [C] | main.rs:245:9:245:9 | s [C] | provenance | | -| main.rs:245:13:245:24 | e.source(...) [C] | main.rs:245:9:245:9 | s [C] | provenance | | -| main.rs:245:15:245:20 | source | main.rs:245:13:245:24 | e.source(...) [C] | provenance | Src:MaD:4 | -| main.rs:245:15:245:20 | source | main.rs:245:13:245:24 | e.source(...) [C] | provenance | Src:MaD:4 | -| main.rs:246:11:246:11 | s [C] | main.rs:247:9:247:37 | ...::C {...} [C] | provenance | | -| main.rs:246:11:246:11 | s [C] | main.rs:247:9:247:37 | ...::C {...} [C] | provenance | | -| main.rs:247:9:247:37 | ...::C {...} [C] | main.rs:247:35:247:35 | i | provenance | | -| main.rs:247:9:247:37 | ...::C {...} [C] | main.rs:247:35:247:35 | i | provenance | | -| main.rs:247:35:247:35 | i | main.rs:247:47:247:47 | i | provenance | | -| main.rs:247:35:247:35 | i | main.rs:247:47:247:47 | i | provenance | | -| main.rs:261:18:261:18 | ... | main.rs:261:26:261:26 | a | provenance | | -| main.rs:261:18:261:18 | ... | main.rs:261:26:261:26 | a | provenance | | -| main.rs:262:9:262:19 | pass_source | main.rs:261:18:261:18 | ... | provenance | Src:MaD:8 | -| main.rs:262:9:262:19 | pass_source | main.rs:261:18:261:18 | ... | provenance | Src:MaD:8 | -| main.rs:264:9:264:19 | pass_source | main.rs:264:25:264:25 | ... | provenance | Src:MaD:8 | -| main.rs:264:9:264:19 | pass_source | main.rs:264:25:264:25 | ... | provenance | Src:MaD:8 | -| main.rs:264:25:264:25 | ... | main.rs:265:18:265:18 | a | provenance | | -| main.rs:264:25:264:25 | ... | main.rs:265:18:265:18 | a | provenance | | -| main.rs:268:14:268:19 | ...: i64 | main.rs:269:18:269:18 | a | provenance | | -| main.rs:268:14:268:19 | ...: i64 | main.rs:269:18:269:18 | a | provenance | | -| main.rs:271:9:271:19 | pass_source | main.rs:268:14:268:19 | ...: i64 | provenance | Src:MaD:8 | -| main.rs:271:9:271:19 | pass_source | main.rs:268:14:268:19 | ...: i64 | provenance | Src:MaD:8 | -| main.rs:273:9:273:19 | pass_source | main.rs:273:36:273:36 | ... | provenance | Src:MaD:8 | -| main.rs:273:9:273:19 | pass_source | main.rs:273:36:273:36 | ... | provenance | Src:MaD:8 | -| main.rs:273:36:273:36 | ... | main.rs:274:18:274:18 | a | provenance | | -| main.rs:273:36:273:36 | ... | main.rs:274:18:274:18 | a | provenance | | -| main.rs:283:9:283:9 | s | main.rs:284:41:284:41 | s | provenance | | -| main.rs:283:9:283:9 | s | main.rs:284:41:284:41 | s | provenance | | -| main.rs:283:13:283:22 | source(...) | main.rs:283:9:283:9 | s | provenance | | -| main.rs:283:13:283:22 | source(...) | main.rs:283:9:283:9 | s | provenance | | -| main.rs:284:15:284:43 | ...::C {...} [C] | main.rs:284:5:284:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | -| main.rs:284:15:284:43 | ...::C {...} [C] | main.rs:284:5:284:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | -| main.rs:284:41:284:41 | s | main.rs:284:15:284:43 | ...::C {...} [C] | provenance | | -| main.rs:284:41:284:41 | s | main.rs:284:15:284:43 | ...::C {...} [C] | provenance | | -| main.rs:289:9:289:9 | s | main.rs:290:39:290:39 | s | provenance | | -| main.rs:289:9:289:9 | s | main.rs:290:39:290:39 | s | provenance | | -| main.rs:289:13:289:22 | source(...) | main.rs:289:9:289:9 | s | provenance | | -| main.rs:289:13:289:22 | source(...) | main.rs:289:9:289:9 | s | provenance | | -| main.rs:290:9:290:9 | e [D] | main.rs:291:5:291:5 | e [D] | provenance | | -| main.rs:290:9:290:9 | e [D] | main.rs:291:5:291:5 | e [D] | provenance | | -| main.rs:290:13:290:41 | ...::D {...} [D] | main.rs:290:9:290:9 | e [D] | provenance | | -| main.rs:290:13:290:41 | ...::D {...} [D] | main.rs:290:9:290:9 | e [D] | provenance | | -| main.rs:290:39:290:39 | s | main.rs:290:13:290:41 | ...::D {...} [D] | provenance | | -| main.rs:290:39:290:39 | s | main.rs:290:13:290:41 | ...::D {...} [D] | provenance | | -| main.rs:291:5:291:5 | e [D] | main.rs:291:7:291:10 | sink | provenance | MaD:1 Sink:MaD:1 | -| main.rs:291:5:291:5 | e [D] | main.rs:291:7:291:10 | sink | provenance | MaD:1 Sink:MaD:1 | -| main.rs:300:9:300:9 | s | main.rs:301:10:301:10 | s | provenance | | -| main.rs:300:9:300:9 | s | main.rs:301:10:301:10 | s | provenance | | -| main.rs:300:13:300:25 | simple_source | main.rs:300:13:300:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | -| main.rs:300:13:300:25 | simple_source | main.rs:300:13:300:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | -| main.rs:300:13:300:29 | simple_source(...) | main.rs:300:9:300:9 | s | provenance | | -| main.rs:300:13:300:29 | simple_source(...) | main.rs:300:9:300:9 | s | provenance | | -| main.rs:308:9:308:9 | s | main.rs:309:17:309:17 | s | provenance | | -| main.rs:308:9:308:9 | s | main.rs:309:17:309:17 | s | provenance | | -| main.rs:308:13:308:22 | source(...) | main.rs:308:9:308:9 | s | provenance | | -| main.rs:308:13:308:22 | source(...) | main.rs:308:9:308:9 | s | provenance | | -| main.rs:309:17:309:17 | s | main.rs:309:5:309:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | -| main.rs:309:17:309:17 | s | main.rs:309:5:309:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | -| main.rs:317:5:317:14 | arg_source | main.rs:317:16:317:16 | [post] i | provenance | Src:MaD:5 MaD:5 | -| main.rs:317:5:317:14 | arg_source | main.rs:317:16:317:16 | [post] i | provenance | Src:MaD:5 MaD:5 | -| main.rs:317:16:317:16 | [post] i | main.rs:318:10:318:10 | i | provenance | | -| main.rs:317:16:317:16 | [post] i | main.rs:318:10:318:10 | i | provenance | | -| main.rs:370:9:370:10 | x1 | main.rs:371:10:371:11 | x1 | provenance | | -| main.rs:370:9:370:10 | x1 | main.rs:371:10:371:11 | x1 | provenance | | -| main.rs:370:14:370:23 | source(...) | main.rs:370:14:370:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:370:14:370:23 | source(...) | main.rs:370:14:370:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:370:14:370:30 | ... .max(...) | main.rs:370:9:370:10 | x1 | provenance | | -| main.rs:370:14:370:30 | ... .max(...) | main.rs:370:9:370:10 | x1 | provenance | | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | main.rs:381:10:381:11 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | main.rs:381:10:381:11 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | main.rs:373:9:373:10 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | main.rs:373:9:373:10 | x2 [MyStruct.field1] | provenance | | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | -| main.rs:374:17:374:26 | source(...) | main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:374:17:374:26 | source(...) | main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | provenance | | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | main.rs:381:10:381:18 | x2.field1 | provenance | | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | main.rs:381:10:381:18 | x2.field1 | provenance | | -| main.rs:386:9:386:10 | x4 | main.rs:387:10:387:11 | x4 | provenance | | -| main.rs:386:9:386:10 | x4 | main.rs:387:10:387:11 | x4 | provenance | | -| main.rs:386:14:386:23 | source(...) | main.rs:386:14:386:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:386:14:386:23 | source(...) | main.rs:386:14:386:30 | ... .max(...) | provenance | MaD:9 | -| main.rs:386:14:386:30 | ... .max(...) | main.rs:386:9:386:10 | x4 | provenance | | -| main.rs:386:14:386:30 | ... .max(...) | main.rs:386:9:386:10 | x4 | provenance | | -| main.rs:389:9:389:10 | x5 | main.rs:390:10:390:11 | x5 | provenance | | -| main.rs:389:14:389:23 | source(...) | main.rs:389:14:389:30 | ... .lt(...) | provenance | MaD:10 | -| main.rs:389:14:389:30 | ... .lt(...) | main.rs:389:9:389:10 | x5 | provenance | | -| main.rs:392:9:392:10 | x6 | main.rs:393:10:393:11 | x6 | provenance | | -| main.rs:392:14:392:23 | source(...) | main.rs:392:14:392:27 | ... < ... | provenance | MaD:10 | -| main.rs:392:14:392:27 | ... < ... | main.rs:392:9:392:10 | x6 | provenance | | +| main.rs:41:9:41:10 | s1 | main.rs:42:17:42:18 | s1 | provenance | | +| main.rs:41:9:41:10 | s1 | main.rs:42:17:42:18 | s1 | provenance | | +| main.rs:41:14:41:23 | source(...) | main.rs:41:9:41:10 | s1 | provenance | | +| main.rs:41:14:41:23 | source(...) | main.rs:41:9:41:10 | s1 | provenance | | +| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:26 | +| main.rs:42:17:42:18 | s1 | main.rs:42:10:42:19 | snd(...) | provenance | MaD:26 | +| main.rs:54:9:54:9 | s | main.rs:55:27:55:27 | s | provenance | | +| main.rs:54:9:54:9 | s | main.rs:55:27:55:27 | s | provenance | | +| main.rs:54:13:54:21 | source(...) | main.rs:54:9:54:9 | s | provenance | | +| main.rs:54:13:54:21 | source(...) | main.rs:54:9:54:9 | s | provenance | | +| main.rs:55:9:55:10 | e1 [A] | main.rs:56:22:56:23 | e1 [A] | provenance | | +| main.rs:55:9:55:10 | e1 [A] | main.rs:56:22:56:23 | e1 [A] | provenance | | +| main.rs:55:14:55:28 | ...::A(...) [A] | main.rs:55:9:55:10 | e1 [A] | provenance | | +| main.rs:55:14:55:28 | ...::A(...) [A] | main.rs:55:9:55:10 | e1 [A] | provenance | | +| main.rs:55:27:55:27 | s | main.rs:55:14:55:28 | ...::A(...) [A] | provenance | | +| main.rs:55:27:55:27 | s | main.rs:55:14:55:28 | ...::A(...) [A] | provenance | | +| main.rs:56:22:56:23 | e1 [A] | main.rs:56:10:56:24 | get_var_pos(...) | provenance | MaD:20 | +| main.rs:56:22:56:23 | e1 [A] | main.rs:56:10:56:24 | get_var_pos(...) | provenance | MaD:20 | +| main.rs:67:9:67:9 | s | main.rs:68:26:68:26 | s | provenance | | +| main.rs:67:9:67:9 | s | main.rs:68:26:68:26 | s | provenance | | +| main.rs:67:13:67:21 | source(...) | main.rs:67:9:67:9 | s | provenance | | +| main.rs:67:13:67:21 | source(...) | main.rs:67:9:67:9 | s | provenance | | +| main.rs:68:9:68:10 | e1 [B] | main.rs:69:11:69:12 | e1 [B] | provenance | | +| main.rs:68:9:68:10 | e1 [B] | main.rs:69:11:69:12 | e1 [B] | provenance | | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | main.rs:68:9:68:10 | e1 [B] | provenance | | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | main.rs:68:9:68:10 | e1 [B] | provenance | | +| main.rs:68:26:68:26 | s | main.rs:68:14:68:27 | set_var_pos(...) [B] | provenance | MaD:25 | +| main.rs:68:26:68:26 | s | main.rs:68:14:68:27 | set_var_pos(...) [B] | provenance | MaD:25 | +| main.rs:69:11:69:12 | e1 [B] | main.rs:71:9:71:23 | ...::B(...) [B] | provenance | | +| main.rs:69:11:69:12 | e1 [B] | main.rs:71:9:71:23 | ...::B(...) [B] | provenance | | +| main.rs:71:9:71:23 | ...::B(...) [B] | main.rs:71:22:71:22 | i | provenance | | +| main.rs:71:9:71:23 | ...::B(...) [B] | main.rs:71:22:71:22 | i | provenance | | +| main.rs:71:22:71:22 | i | main.rs:71:33:71:33 | i | provenance | | +| main.rs:71:22:71:22 | i | main.rs:71:33:71:33 | i | provenance | | +| main.rs:86:9:86:9 | s | main.rs:87:40:87:40 | s | provenance | | +| main.rs:86:9:86:9 | s | main.rs:87:40:87:40 | s | provenance | | +| main.rs:86:13:86:21 | source(...) | main.rs:86:9:86:9 | s | provenance | | +| main.rs:86:13:86:21 | source(...) | main.rs:86:9:86:9 | s | provenance | | +| main.rs:87:9:87:10 | e1 [C] | main.rs:88:24:88:25 | e1 [C] | provenance | | +| main.rs:87:9:87:10 | e1 [C] | main.rs:88:24:88:25 | e1 [C] | provenance | | +| main.rs:87:14:87:42 | ...::C {...} [C] | main.rs:87:9:87:10 | e1 [C] | provenance | | +| main.rs:87:14:87:42 | ...::C {...} [C] | main.rs:87:9:87:10 | e1 [C] | provenance | | +| main.rs:87:40:87:40 | s | main.rs:87:14:87:42 | ...::C {...} [C] | provenance | | +| main.rs:87:40:87:40 | s | main.rs:87:14:87:42 | ...::C {...} [C] | provenance | | +| main.rs:88:24:88:25 | e1 [C] | main.rs:88:10:88:26 | get_var_field(...) | provenance | MaD:19 | +| main.rs:88:24:88:25 | e1 [C] | main.rs:88:10:88:26 | get_var_field(...) | provenance | MaD:19 | +| main.rs:99:9:99:9 | s | main.rs:100:28:100:28 | s | provenance | | +| main.rs:99:9:99:9 | s | main.rs:100:28:100:28 | s | provenance | | +| main.rs:99:13:99:21 | source(...) | main.rs:99:9:99:9 | s | provenance | | +| main.rs:99:13:99:21 | source(...) | main.rs:99:9:99:9 | s | provenance | | +| main.rs:100:9:100:10 | e1 [D] | main.rs:101:11:101:12 | e1 [D] | provenance | | +| main.rs:100:9:100:10 | e1 [D] | main.rs:101:11:101:12 | e1 [D] | provenance | | +| main.rs:100:14:100:29 | set_var_field(...) [D] | main.rs:100:9:100:10 | e1 [D] | provenance | | +| main.rs:100:14:100:29 | set_var_field(...) [D] | main.rs:100:9:100:10 | e1 [D] | provenance | | +| main.rs:100:28:100:28 | s | main.rs:100:14:100:29 | set_var_field(...) [D] | provenance | MaD:24 | +| main.rs:100:28:100:28 | s | main.rs:100:14:100:29 | set_var_field(...) [D] | provenance | MaD:24 | +| main.rs:101:11:101:12 | e1 [D] | main.rs:103:9:103:37 | ...::D {...} [D] | provenance | | +| main.rs:101:11:101:12 | e1 [D] | main.rs:103:9:103:37 | ...::D {...} [D] | provenance | | +| main.rs:103:9:103:37 | ...::D {...} [D] | main.rs:103:35:103:35 | i | provenance | | +| main.rs:103:9:103:37 | ...::D {...} [D] | main.rs:103:35:103:35 | i | provenance | | +| main.rs:103:35:103:35 | i | main.rs:103:47:103:47 | i | provenance | | +| main.rs:103:35:103:35 | i | main.rs:103:47:103:47 | i | provenance | | +| main.rs:118:9:118:9 | s | main.rs:120:17:120:17 | s | provenance | | +| main.rs:118:9:118:9 | s | main.rs:120:17:120:17 | s | provenance | | +| main.rs:118:13:118:21 | source(...) | main.rs:118:9:118:9 | s | provenance | | +| main.rs:118:13:118:21 | source(...) | main.rs:118:9:118:9 | s | provenance | | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | main.rs:123:27:123:35 | my_struct [MyStruct.field1] | provenance | | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | main.rs:123:27:123:35 | my_struct [MyStruct.field1] | provenance | | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | main.rs:119:9:119:17 | my_struct [MyStruct.field1] | provenance | | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | main.rs:119:9:119:17 | my_struct [MyStruct.field1] | provenance | | +| main.rs:120:17:120:17 | s | main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:120:17:120:17 | s | main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | main.rs:123:10:123:36 | get_struct_field(...) | provenance | MaD:17 | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | main.rs:123:10:123:36 | get_struct_field(...) | provenance | MaD:17 | +| main.rs:140:9:140:9 | s | main.rs:141:38:141:38 | s | provenance | | +| main.rs:140:9:140:9 | s | main.rs:141:38:141:38 | s | provenance | | +| main.rs:140:13:140:21 | source(...) | main.rs:140:9:140:9 | s | provenance | | +| main.rs:140:13:140:21 | source(...) | main.rs:140:9:140:9 | s | provenance | | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | main.rs:143:10:143:18 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | main.rs:143:10:143:18 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | main.rs:141:9:141:17 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | main.rs:141:9:141:17 | my_struct [MyStruct.field2] | provenance | | +| main.rs:141:38:141:38 | s | main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | +| main.rs:141:38:141:38 | s | main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | provenance | MaD:22 | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | main.rs:143:10:143:25 | my_struct.field2 | provenance | | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | main.rs:143:10:143:25 | my_struct.field2 | provenance | | +| main.rs:152:9:152:9 | s | main.rs:153:29:153:29 | s | provenance | | +| main.rs:152:9:152:9 | s | main.rs:153:29:153:29 | s | provenance | | +| main.rs:152:13:152:21 | source(...) | main.rs:152:9:152:9 | s | provenance | | +| main.rs:152:13:152:21 | source(...) | main.rs:152:9:152:9 | s | provenance | | +| main.rs:153:28:153:30 | [...] [element] | main.rs:153:10:153:31 | get_array_element(...) | provenance | MaD:15 | +| main.rs:153:28:153:30 | [...] [element] | main.rs:153:10:153:31 | get_array_element(...) | provenance | MaD:15 | +| main.rs:153:29:153:29 | s | main.rs:153:28:153:30 | [...] [element] | provenance | | +| main.rs:153:29:153:29 | s | main.rs:153:28:153:30 | [...] [element] | provenance | | +| main.rs:162:9:162:9 | s | main.rs:163:33:163:33 | s | provenance | | +| main.rs:162:9:162:9 | s | main.rs:163:33:163:33 | s | provenance | | +| main.rs:162:13:162:21 | source(...) | main.rs:162:9:162:9 | s | provenance | | +| main.rs:162:13:162:21 | source(...) | main.rs:162:9:162:9 | s | provenance | | +| main.rs:163:9:163:11 | arr [element] | main.rs:164:10:164:12 | arr [element] | provenance | | +| main.rs:163:9:163:11 | arr [element] | main.rs:164:10:164:12 | arr [element] | provenance | | +| main.rs:163:15:163:34 | set_array_element(...) [element] | main.rs:163:9:163:11 | arr [element] | provenance | | +| main.rs:163:15:163:34 | set_array_element(...) [element] | main.rs:163:9:163:11 | arr [element] | provenance | | +| main.rs:163:33:163:33 | s | main.rs:163:15:163:34 | set_array_element(...) [element] | provenance | MaD:21 | +| main.rs:163:33:163:33 | s | main.rs:163:15:163:34 | set_array_element(...) [element] | provenance | MaD:21 | +| main.rs:164:10:164:12 | arr [element] | main.rs:164:10:164:15 | arr[0] | provenance | MaD:11 | +| main.rs:164:10:164:12 | arr [element] | main.rs:164:10:164:15 | arr[0] | provenance | MaD:11 | +| main.rs:173:9:173:9 | s | main.rs:174:14:174:14 | s | provenance | | +| main.rs:173:9:173:9 | s | main.rs:174:14:174:14 | s | provenance | | +| main.rs:173:13:173:22 | source(...) | main.rs:173:9:173:9 | s | provenance | | +| main.rs:173:13:173:22 | source(...) | main.rs:173:9:173:9 | s | provenance | | +| main.rs:174:9:174:9 | t [tuple.0] | main.rs:175:28:175:28 | t [tuple.0] | provenance | | +| main.rs:174:9:174:9 | t [tuple.0] | main.rs:175:28:175:28 | t [tuple.0] | provenance | | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | main.rs:174:9:174:9 | t [tuple.0] | provenance | | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | main.rs:174:9:174:9 | t [tuple.0] | provenance | | +| main.rs:174:14:174:14 | s | main.rs:174:13:174:18 | TupleExpr [tuple.0] | provenance | | +| main.rs:174:14:174:14 | s | main.rs:174:13:174:18 | TupleExpr [tuple.0] | provenance | | +| main.rs:175:28:175:28 | t [tuple.0] | main.rs:175:10:175:29 | get_tuple_element(...) | provenance | MaD:18 | +| main.rs:175:28:175:28 | t [tuple.0] | main.rs:175:10:175:29 | get_tuple_element(...) | provenance | MaD:18 | +| main.rs:186:9:186:9 | s | main.rs:187:31:187:31 | s | provenance | | +| main.rs:186:9:186:9 | s | main.rs:187:31:187:31 | s | provenance | | +| main.rs:186:13:186:22 | source(...) | main.rs:186:9:186:9 | s | provenance | | +| main.rs:186:13:186:22 | source(...) | main.rs:186:9:186:9 | s | provenance | | +| main.rs:187:9:187:9 | t [tuple.1] | main.rs:189:10:189:10 | t [tuple.1] | provenance | | +| main.rs:187:9:187:9 | t [tuple.1] | main.rs:189:10:189:10 | t [tuple.1] | provenance | | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | main.rs:187:9:187:9 | t [tuple.1] | provenance | | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | main.rs:187:9:187:9 | t [tuple.1] | provenance | | +| main.rs:187:31:187:31 | s | main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | +| main.rs:187:31:187:31 | s | main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | provenance | MaD:23 | +| main.rs:189:10:189:10 | t [tuple.1] | main.rs:189:10:189:12 | t.1 | provenance | | +| main.rs:189:10:189:10 | t [tuple.1] | main.rs:189:10:189:12 | t.1 | provenance | | +| main.rs:201:9:201:9 | s | main.rs:206:11:206:11 | s | provenance | | +| main.rs:201:9:201:9 | s | main.rs:206:11:206:11 | s | provenance | | +| main.rs:201:13:201:22 | source(...) | main.rs:201:9:201:9 | s | provenance | | +| main.rs:201:13:201:22 | source(...) | main.rs:201:9:201:9 | s | provenance | | +| main.rs:202:14:202:14 | ... | main.rs:203:14:203:14 | n | provenance | | +| main.rs:202:14:202:14 | ... | main.rs:203:14:203:14 | n | provenance | | +| main.rs:206:11:206:11 | s | main.rs:202:14:202:14 | ... | provenance | MaD:12 | +| main.rs:206:11:206:11 | s | main.rs:202:14:202:14 | ... | provenance | MaD:12 | +| main.rs:210:13:210:22 | source(...) | main.rs:212:23:212:23 | f [captured s] | provenance | | +| main.rs:210:13:210:22 | source(...) | main.rs:212:23:212:23 | f [captured s] | provenance | | +| main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | provenance | | +| main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | provenance | | +| main.rs:212:9:212:9 | t | main.rs:213:10:213:10 | t | provenance | | +| main.rs:212:9:212:9 | t | main.rs:213:10:213:10 | t | provenance | | +| main.rs:212:13:212:24 | apply(...) | main.rs:212:9:212:9 | t | provenance | | +| main.rs:212:13:212:24 | apply(...) | main.rs:212:9:212:9 | t | provenance | | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:13 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | provenance | MaD:13 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:12 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:13 | +| main.rs:212:23:212:23 | f [captured s] | main.rs:212:13:212:24 | apply(...) | provenance | MaD:13 | +| main.rs:217:9:217:9 | s | main.rs:219:19:219:19 | s | provenance | | +| main.rs:217:9:217:9 | s | main.rs:219:19:219:19 | s | provenance | | +| main.rs:217:13:217:22 | source(...) | main.rs:217:9:217:9 | s | provenance | | +| main.rs:217:13:217:22 | source(...) | main.rs:217:9:217:9 | s | provenance | | +| main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | provenance | | +| main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | provenance | | +| main.rs:219:9:219:9 | t | main.rs:220:10:220:10 | t | provenance | | +| main.rs:219:9:219:9 | t | main.rs:220:10:220:10 | t | provenance | | +| main.rs:219:13:219:23 | apply(...) | main.rs:219:9:219:9 | t | provenance | | +| main.rs:219:13:219:23 | apply(...) | main.rs:219:9:219:9 | t | provenance | | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | provenance | MaD:12 | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | provenance | MaD:12 | +| main.rs:219:19:219:19 | s | main.rs:219:13:219:23 | apply(...) | provenance | MaD:12 | +| main.rs:219:19:219:19 | s | main.rs:219:13:219:23 | apply(...) | provenance | MaD:12 | +| main.rs:229:9:229:9 | s | main.rs:230:30:230:30 | s | provenance | | +| main.rs:229:9:229:9 | s | main.rs:230:30:230:30 | s | provenance | | +| main.rs:229:13:229:22 | source(...) | main.rs:229:9:229:9 | s | provenance | | +| main.rs:229:13:229:22 | source(...) | main.rs:229:9:229:9 | s | provenance | | +| main.rs:230:9:230:9 | t | main.rs:231:10:231:10 | t | provenance | | +| main.rs:230:9:230:9 | t | main.rs:231:10:231:10 | t | provenance | | +| main.rs:230:13:230:31 | get_async_number(...) [future] | main.rs:230:13:230:37 | await ... | provenance | | +| main.rs:230:13:230:31 | get_async_number(...) [future] | main.rs:230:13:230:37 | await ... | provenance | | +| main.rs:230:13:230:37 | await ... | main.rs:230:9:230:9 | t | provenance | | +| main.rs:230:13:230:37 | await ... | main.rs:230:9:230:9 | t | provenance | | +| main.rs:230:30:230:30 | s | main.rs:230:13:230:31 | get_async_number(...) [future] | provenance | MaD:16 | +| main.rs:230:30:230:30 | s | main.rs:230:13:230:31 | get_async_number(...) [future] | provenance | MaD:16 | +| main.rs:250:9:250:9 | s [D] | main.rs:251:11:251:11 | s [D] | provenance | | +| main.rs:250:9:250:9 | s [D] | main.rs:251:11:251:11 | s [D] | provenance | | +| main.rs:250:13:250:23 | enum_source | main.rs:250:13:250:27 | enum_source(...) [D] | provenance | Src:MaD:6 | +| main.rs:250:13:250:23 | enum_source | main.rs:250:13:250:27 | enum_source(...) [D] | provenance | Src:MaD:6 | +| main.rs:250:13:250:27 | enum_source(...) [D] | main.rs:250:9:250:9 | s [D] | provenance | | +| main.rs:250:13:250:27 | enum_source(...) [D] | main.rs:250:9:250:9 | s [D] | provenance | | +| main.rs:251:11:251:11 | s [D] | main.rs:253:9:253:37 | ...::D {...} [D] | provenance | | +| main.rs:251:11:251:11 | s [D] | main.rs:253:9:253:37 | ...::D {...} [D] | provenance | | +| main.rs:253:9:253:37 | ...::D {...} [D] | main.rs:253:35:253:35 | i | provenance | | +| main.rs:253:9:253:37 | ...::D {...} [D] | main.rs:253:35:253:35 | i | provenance | | +| main.rs:253:35:253:35 | i | main.rs:253:47:253:47 | i | provenance | | +| main.rs:253:35:253:35 | i | main.rs:253:47:253:47 | i | provenance | | +| main.rs:259:9:259:9 | s [C] | main.rs:260:11:260:11 | s [C] | provenance | | +| main.rs:259:9:259:9 | s [C] | main.rs:260:11:260:11 | s [C] | provenance | | +| main.rs:259:13:259:24 | e.source(...) [C] | main.rs:259:9:259:9 | s [C] | provenance | | +| main.rs:259:13:259:24 | e.source(...) [C] | main.rs:259:9:259:9 | s [C] | provenance | | +| main.rs:259:15:259:20 | source | main.rs:259:13:259:24 | e.source(...) [C] | provenance | Src:MaD:4 | +| main.rs:259:15:259:20 | source | main.rs:259:13:259:24 | e.source(...) [C] | provenance | Src:MaD:4 | +| main.rs:260:11:260:11 | s [C] | main.rs:261:9:261:37 | ...::C {...} [C] | provenance | | +| main.rs:260:11:260:11 | s [C] | main.rs:261:9:261:37 | ...::C {...} [C] | provenance | | +| main.rs:261:9:261:37 | ...::C {...} [C] | main.rs:261:35:261:35 | i | provenance | | +| main.rs:261:9:261:37 | ...::C {...} [C] | main.rs:261:35:261:35 | i | provenance | | +| main.rs:261:35:261:35 | i | main.rs:261:47:261:47 | i | provenance | | +| main.rs:261:35:261:35 | i | main.rs:261:47:261:47 | i | provenance | | +| main.rs:275:18:275:18 | ... | main.rs:275:26:275:26 | a | provenance | | +| main.rs:275:18:275:18 | ... | main.rs:275:26:275:26 | a | provenance | | +| main.rs:276:9:276:19 | pass_source | main.rs:275:18:275:18 | ... | provenance | Src:MaD:8 | +| main.rs:276:9:276:19 | pass_source | main.rs:275:18:275:18 | ... | provenance | Src:MaD:8 | +| main.rs:278:9:278:19 | pass_source | main.rs:278:25:278:25 | ... | provenance | Src:MaD:8 | +| main.rs:278:9:278:19 | pass_source | main.rs:278:25:278:25 | ... | provenance | Src:MaD:8 | +| main.rs:278:25:278:25 | ... | main.rs:279:18:279:18 | a | provenance | | +| main.rs:278:25:278:25 | ... | main.rs:279:18:279:18 | a | provenance | | +| main.rs:282:14:282:19 | ...: i64 | main.rs:283:18:283:18 | a | provenance | | +| main.rs:282:14:282:19 | ...: i64 | main.rs:283:18:283:18 | a | provenance | | +| main.rs:285:9:285:19 | pass_source | main.rs:282:14:282:19 | ...: i64 | provenance | Src:MaD:8 | +| main.rs:285:9:285:19 | pass_source | main.rs:282:14:282:19 | ...: i64 | provenance | Src:MaD:8 | +| main.rs:287:9:287:19 | pass_source | main.rs:287:36:287:36 | ... | provenance | Src:MaD:8 | +| main.rs:287:9:287:19 | pass_source | main.rs:287:36:287:36 | ... | provenance | Src:MaD:8 | +| main.rs:287:36:287:36 | ... | main.rs:288:18:288:18 | a | provenance | | +| main.rs:287:36:287:36 | ... | main.rs:288:18:288:18 | a | provenance | | +| main.rs:297:9:297:9 | s | main.rs:298:41:298:41 | s | provenance | | +| main.rs:297:9:297:9 | s | main.rs:298:41:298:41 | s | provenance | | +| main.rs:297:13:297:22 | source(...) | main.rs:297:9:297:9 | s | provenance | | +| main.rs:297:13:297:22 | source(...) | main.rs:297:9:297:9 | s | provenance | | +| main.rs:298:15:298:43 | ...::C {...} [C] | main.rs:298:5:298:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | +| main.rs:298:15:298:43 | ...::C {...} [C] | main.rs:298:5:298:13 | enum_sink | provenance | MaD:2 Sink:MaD:2 | +| main.rs:298:41:298:41 | s | main.rs:298:15:298:43 | ...::C {...} [C] | provenance | | +| main.rs:298:41:298:41 | s | main.rs:298:15:298:43 | ...::C {...} [C] | provenance | | +| main.rs:303:9:303:9 | s | main.rs:304:39:304:39 | s | provenance | | +| main.rs:303:9:303:9 | s | main.rs:304:39:304:39 | s | provenance | | +| main.rs:303:13:303:22 | source(...) | main.rs:303:9:303:9 | s | provenance | | +| main.rs:303:13:303:22 | source(...) | main.rs:303:9:303:9 | s | provenance | | +| main.rs:304:9:304:9 | e [D] | main.rs:305:5:305:5 | e [D] | provenance | | +| main.rs:304:9:304:9 | e [D] | main.rs:305:5:305:5 | e [D] | provenance | | +| main.rs:304:13:304:41 | ...::D {...} [D] | main.rs:304:9:304:9 | e [D] | provenance | | +| main.rs:304:13:304:41 | ...::D {...} [D] | main.rs:304:9:304:9 | e [D] | provenance | | +| main.rs:304:39:304:39 | s | main.rs:304:13:304:41 | ...::D {...} [D] | provenance | | +| main.rs:304:39:304:39 | s | main.rs:304:13:304:41 | ...::D {...} [D] | provenance | | +| main.rs:305:5:305:5 | e [D] | main.rs:305:7:305:10 | sink | provenance | MaD:1 Sink:MaD:1 | +| main.rs:305:5:305:5 | e [D] | main.rs:305:7:305:10 | sink | provenance | MaD:1 Sink:MaD:1 | +| main.rs:314:9:314:9 | s | main.rs:315:10:315:10 | s | provenance | | +| main.rs:314:9:314:9 | s | main.rs:315:10:315:10 | s | provenance | | +| main.rs:314:13:314:25 | simple_source | main.rs:314:13:314:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | +| main.rs:314:13:314:25 | simple_source | main.rs:314:13:314:29 | simple_source(...) | provenance | Src:MaD:7 MaD:7 | +| main.rs:314:13:314:29 | simple_source(...) | main.rs:314:9:314:9 | s | provenance | | +| main.rs:314:13:314:29 | simple_source(...) | main.rs:314:9:314:9 | s | provenance | | +| main.rs:322:9:322:9 | s | main.rs:323:17:323:17 | s | provenance | | +| main.rs:322:9:322:9 | s | main.rs:323:17:323:17 | s | provenance | | +| main.rs:322:13:322:22 | source(...) | main.rs:322:9:322:9 | s | provenance | | +| main.rs:322:13:322:22 | source(...) | main.rs:322:9:322:9 | s | provenance | | +| main.rs:323:17:323:17 | s | main.rs:323:5:323:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | +| main.rs:323:17:323:17 | s | main.rs:323:5:323:15 | simple_sink | provenance | MaD:3 Sink:MaD:3 | +| main.rs:331:5:331:14 | arg_source | main.rs:331:16:331:16 | [post] i | provenance | Src:MaD:5 MaD:5 | +| main.rs:331:5:331:14 | arg_source | main.rs:331:16:331:16 | [post] i | provenance | Src:MaD:5 MaD:5 | +| main.rs:331:16:331:16 | [post] i | main.rs:332:10:332:10 | i | provenance | | +| main.rs:331:16:331:16 | [post] i | main.rs:332:10:332:10 | i | provenance | | +| main.rs:384:9:384:10 | x1 | main.rs:385:10:385:11 | x1 | provenance | | +| main.rs:384:9:384:10 | x1 | main.rs:385:10:385:11 | x1 | provenance | | +| main.rs:384:14:384:23 | source(...) | main.rs:384:14:384:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:384:14:384:23 | source(...) | main.rs:384:14:384:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:384:14:384:30 | ... .max(...) | main.rs:384:9:384:10 | x1 | provenance | | +| main.rs:384:14:384:30 | ... .max(...) | main.rs:384:9:384:10 | x1 | provenance | | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | main.rs:395:10:395:11 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | main.rs:395:10:395:11 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | main.rs:387:9:387:10 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | main.rs:387:9:387:10 | x2 [MyStruct.field1] | provenance | | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | provenance | MaD:9 | +| main.rs:388:17:388:26 | source(...) | main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:388:17:388:26 | source(...) | main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | provenance | | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | main.rs:395:10:395:18 | x2.field1 | provenance | | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | main.rs:395:10:395:18 | x2.field1 | provenance | | +| main.rs:400:9:400:10 | x4 | main.rs:401:10:401:11 | x4 | provenance | | +| main.rs:400:9:400:10 | x4 | main.rs:401:10:401:11 | x4 | provenance | | +| main.rs:400:14:400:23 | source(...) | main.rs:400:14:400:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:400:14:400:23 | source(...) | main.rs:400:14:400:30 | ... .max(...) | provenance | MaD:9 | +| main.rs:400:14:400:30 | ... .max(...) | main.rs:400:9:400:10 | x4 | provenance | | +| main.rs:400:14:400:30 | ... .max(...) | main.rs:400:9:400:10 | x4 | provenance | | +| main.rs:403:9:403:10 | x5 | main.rs:404:10:404:11 | x5 | provenance | | +| main.rs:403:14:403:23 | source(...) | main.rs:403:14:403:30 | ... .lt(...) | provenance | MaD:10 | +| main.rs:403:14:403:30 | ... .lt(...) | main.rs:403:9:403:10 | x5 | provenance | | +| main.rs:406:9:406:10 | x6 | main.rs:407:10:407:11 | x6 | provenance | | +| main.rs:406:14:406:23 | source(...) | main.rs:406:14:406:27 | ... < ... | provenance | MaD:10 | +| main.rs:406:14:406:27 | ... < ... | main.rs:406:9:406:10 | x6 | provenance | | nodes | main.rs:15:9:15:9 | s | semmle.label | s | | main.rs:15:9:15:9 | s | semmle.label | s | @@ -325,404 +332,414 @@ nodes | main.rs:25:13:25:22 | source(...) | semmle.label | source(...) | | main.rs:26:10:26:18 | coerce(...) | semmle.label | coerce(...) | | main.rs:26:17:26:17 | s | semmle.label | s | -| main.rs:40:9:40:9 | s | semmle.label | s | -| main.rs:40:9:40:9 | s | semmle.label | s | -| main.rs:40:13:40:21 | source(...) | semmle.label | source(...) | -| main.rs:40:13:40:21 | source(...) | semmle.label | source(...) | -| main.rs:41:9:41:10 | e1 [A] | semmle.label | e1 [A] | -| main.rs:41:9:41:10 | e1 [A] | semmle.label | e1 [A] | -| main.rs:41:14:41:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | -| main.rs:41:14:41:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | -| main.rs:41:27:41:27 | s | semmle.label | s | -| main.rs:41:27:41:27 | s | semmle.label | s | -| main.rs:42:10:42:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | -| main.rs:42:10:42:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | -| main.rs:42:22:42:23 | e1 [A] | semmle.label | e1 [A] | -| main.rs:42:22:42:23 | e1 [A] | semmle.label | e1 [A] | -| main.rs:53:9:53:9 | s | semmle.label | s | -| main.rs:53:9:53:9 | s | semmle.label | s | -| main.rs:53:13:53:21 | source(...) | semmle.label | source(...) | -| main.rs:53:13:53:21 | source(...) | semmle.label | source(...) | -| main.rs:54:9:54:10 | e1 [B] | semmle.label | e1 [B] | -| main.rs:54:9:54:10 | e1 [B] | semmle.label | e1 [B] | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | -| main.rs:54:14:54:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | -| main.rs:54:26:54:26 | s | semmle.label | s | -| main.rs:54:26:54:26 | s | semmle.label | s | -| main.rs:55:11:55:12 | e1 [B] | semmle.label | e1 [B] | -| main.rs:55:11:55:12 | e1 [B] | semmle.label | e1 [B] | -| main.rs:57:9:57:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | -| main.rs:57:9:57:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | -| main.rs:57:22:57:22 | i | semmle.label | i | -| main.rs:57:22:57:22 | i | semmle.label | i | -| main.rs:57:33:57:33 | i | semmle.label | i | -| main.rs:57:33:57:33 | i | semmle.label | i | -| main.rs:72:9:72:9 | s | semmle.label | s | -| main.rs:72:9:72:9 | s | semmle.label | s | -| main.rs:72:13:72:21 | source(...) | semmle.label | source(...) | -| main.rs:72:13:72:21 | source(...) | semmle.label | source(...) | -| main.rs:73:9:73:10 | e1 [C] | semmle.label | e1 [C] | -| main.rs:73:9:73:10 | e1 [C] | semmle.label | e1 [C] | -| main.rs:73:14:73:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:73:14:73:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:73:40:73:40 | s | semmle.label | s | -| main.rs:73:40:73:40 | s | semmle.label | s | -| main.rs:74:10:74:26 | get_var_field(...) | semmle.label | get_var_field(...) | -| main.rs:74:10:74:26 | get_var_field(...) | semmle.label | get_var_field(...) | -| main.rs:74:24:74:25 | e1 [C] | semmle.label | e1 [C] | -| main.rs:74:24:74:25 | e1 [C] | semmle.label | e1 [C] | -| main.rs:85:9:85:9 | s | semmle.label | s | -| main.rs:85:9:85:9 | s | semmle.label | s | -| main.rs:85:13:85:21 | source(...) | semmle.label | source(...) | -| main.rs:85:13:85:21 | source(...) | semmle.label | source(...) | -| main.rs:86:9:86:10 | e1 [D] | semmle.label | e1 [D] | -| main.rs:86:9:86:10 | e1 [D] | semmle.label | e1 [D] | -| main.rs:86:14:86:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | -| main.rs:86:14:86:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | -| main.rs:86:28:86:28 | s | semmle.label | s | -| main.rs:86:28:86:28 | s | semmle.label | s | -| main.rs:87:11:87:12 | e1 [D] | semmle.label | e1 [D] | -| main.rs:87:11:87:12 | e1 [D] | semmle.label | e1 [D] | -| main.rs:89:9:89:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:89:9:89:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:89:35:89:35 | i | semmle.label | i | -| main.rs:89:35:89:35 | i | semmle.label | i | -| main.rs:89:47:89:47 | i | semmle.label | i | -| main.rs:89:47:89:47 | i | semmle.label | i | -| main.rs:104:9:104:9 | s | semmle.label | s | -| main.rs:104:9:104:9 | s | semmle.label | s | -| main.rs:104:13:104:21 | source(...) | semmle.label | source(...) | -| main.rs:104:13:104:21 | source(...) | semmle.label | source(...) | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:105:9:105:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:105:21:108:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:106:17:106:17 | s | semmle.label | s | -| main.rs:106:17:106:17 | s | semmle.label | s | -| main.rs:109:10:109:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | -| main.rs:109:10:109:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:109:27:109:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | -| main.rs:126:9:126:9 | s | semmle.label | s | -| main.rs:126:9:126:9 | s | semmle.label | s | -| main.rs:126:13:126:21 | source(...) | semmle.label | source(...) | -| main.rs:126:13:126:21 | source(...) | semmle.label | source(...) | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:127:9:127:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | -| main.rs:127:21:127:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | -| main.rs:127:38:127:38 | s | semmle.label | s | -| main.rs:127:38:127:38 | s | semmle.label | s | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:129:10:129:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | -| main.rs:129:10:129:25 | my_struct.field2 | semmle.label | my_struct.field2 | -| main.rs:129:10:129:25 | my_struct.field2 | semmle.label | my_struct.field2 | -| main.rs:138:9:138:9 | s | semmle.label | s | -| main.rs:138:9:138:9 | s | semmle.label | s | -| main.rs:138:13:138:21 | source(...) | semmle.label | source(...) | -| main.rs:138:13:138:21 | source(...) | semmle.label | source(...) | -| main.rs:139:10:139:31 | get_array_element(...) | semmle.label | get_array_element(...) | -| main.rs:139:10:139:31 | get_array_element(...) | semmle.label | get_array_element(...) | -| main.rs:139:28:139:30 | [...] [element] | semmle.label | [...] [element] | -| main.rs:139:28:139:30 | [...] [element] | semmle.label | [...] [element] | -| main.rs:139:29:139:29 | s | semmle.label | s | -| main.rs:139:29:139:29 | s | semmle.label | s | -| main.rs:148:9:148:9 | s | semmle.label | s | -| main.rs:148:9:148:9 | s | semmle.label | s | -| main.rs:148:13:148:21 | source(...) | semmle.label | source(...) | -| main.rs:148:13:148:21 | source(...) | semmle.label | source(...) | -| main.rs:149:9:149:11 | arr [element] | semmle.label | arr [element] | -| main.rs:149:9:149:11 | arr [element] | semmle.label | arr [element] | -| main.rs:149:15:149:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | -| main.rs:149:15:149:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | -| main.rs:149:33:149:33 | s | semmle.label | s | -| main.rs:149:33:149:33 | s | semmle.label | s | -| main.rs:150:10:150:12 | arr [element] | semmle.label | arr [element] | -| main.rs:150:10:150:12 | arr [element] | semmle.label | arr [element] | -| main.rs:150:10:150:15 | arr[0] | semmle.label | arr[0] | -| main.rs:150:10:150:15 | arr[0] | semmle.label | arr[0] | -| main.rs:159:9:159:9 | s | semmle.label | s | -| main.rs:159:9:159:9 | s | semmle.label | s | -| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | -| main.rs:159:13:159:22 | source(...) | semmle.label | source(...) | -| main.rs:160:9:160:9 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:160:9:160:9 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:160:13:160:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| main.rs:160:14:160:14 | s | semmle.label | s | -| main.rs:160:14:160:14 | s | semmle.label | s | -| main.rs:161:10:161:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | -| main.rs:161:10:161:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | -| main.rs:161:28:161:28 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:161:28:161:28 | t [tuple.0] | semmle.label | t [tuple.0] | -| main.rs:172:9:172:9 | s | semmle.label | s | -| main.rs:172:9:172:9 | s | semmle.label | s | -| main.rs:172:13:172:22 | source(...) | semmle.label | source(...) | -| main.rs:172:13:172:22 | source(...) | semmle.label | source(...) | -| main.rs:173:9:173:9 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:173:9:173:9 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | -| main.rs:173:13:173:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | -| main.rs:173:31:173:31 | s | semmle.label | s | -| main.rs:173:31:173:31 | s | semmle.label | s | -| main.rs:175:10:175:10 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:175:10:175:10 | t [tuple.1] | semmle.label | t [tuple.1] | -| main.rs:175:10:175:12 | t.1 | semmle.label | t.1 | -| main.rs:175:10:175:12 | t.1 | semmle.label | t.1 | -| main.rs:187:9:187:9 | s | semmle.label | s | -| main.rs:187:9:187:9 | s | semmle.label | s | -| main.rs:187:13:187:22 | source(...) | semmle.label | source(...) | -| main.rs:187:13:187:22 | source(...) | semmle.label | source(...) | -| main.rs:188:14:188:14 | ... | semmle.label | ... | -| main.rs:188:14:188:14 | ... | semmle.label | ... | -| main.rs:189:14:189:14 | n | semmle.label | n | -| main.rs:189:14:189:14 | n | semmle.label | n | -| main.rs:192:11:192:11 | s | semmle.label | s | -| main.rs:192:11:192:11 | s | semmle.label | s | -| main.rs:196:13:196:22 | source(...) | semmle.label | source(...) | -| main.rs:196:13:196:22 | source(...) | semmle.label | source(...) | -| main.rs:197:17:197:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:197:17:197:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:197:40:197:40 | s | semmle.label | s | -| main.rs:197:40:197:40 | s | semmle.label | s | -| main.rs:198:9:198:9 | t | semmle.label | t | -| main.rs:198:9:198:9 | t | semmle.label | t | -| main.rs:198:13:198:24 | apply(...) | semmle.label | apply(...) | -| main.rs:198:13:198:24 | apply(...) | semmle.label | apply(...) | -| main.rs:198:23:198:23 | f [captured s] | semmle.label | f [captured s] | -| main.rs:198:23:198:23 | f [captured s] | semmle.label | f [captured s] | -| main.rs:199:10:199:10 | t | semmle.label | t | -| main.rs:199:10:199:10 | t | semmle.label | t | -| main.rs:203:9:203:9 | s | semmle.label | s | -| main.rs:203:9:203:9 | s | semmle.label | s | -| main.rs:203:13:203:22 | source(...) | semmle.label | source(...) | -| main.rs:203:13:203:22 | source(...) | semmle.label | source(...) | -| main.rs:204:14:204:14 | ... | semmle.label | ... | -| main.rs:204:14:204:14 | ... | semmle.label | ... | -| main.rs:204:17:204:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:204:17:204:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | -| main.rs:205:9:205:9 | t | semmle.label | t | -| main.rs:205:9:205:9 | t | semmle.label | t | -| main.rs:205:13:205:23 | apply(...) | semmle.label | apply(...) | -| main.rs:205:13:205:23 | apply(...) | semmle.label | apply(...) | -| main.rs:205:19:205:19 | s | semmle.label | s | -| main.rs:205:19:205:19 | s | semmle.label | s | -| main.rs:206:10:206:10 | t | semmle.label | t | -| main.rs:206:10:206:10 | t | semmle.label | t | -| main.rs:215:9:215:9 | s | semmle.label | s | -| main.rs:215:9:215:9 | s | semmle.label | s | -| main.rs:215:13:215:22 | source(...) | semmle.label | source(...) | -| main.rs:215:13:215:22 | source(...) | semmle.label | source(...) | -| main.rs:216:9:216:9 | t | semmle.label | t | -| main.rs:216:9:216:9 | t | semmle.label | t | -| main.rs:216:13:216:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | -| main.rs:216:13:216:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | -| main.rs:216:13:216:37 | await ... | semmle.label | await ... | -| main.rs:216:13:216:37 | await ... | semmle.label | await ... | -| main.rs:216:30:216:30 | s | semmle.label | s | -| main.rs:216:30:216:30 | s | semmle.label | s | -| main.rs:217:10:217:10 | t | semmle.label | t | -| main.rs:217:10:217:10 | t | semmle.label | t | -| main.rs:236:9:236:9 | s [D] | semmle.label | s [D] | -| main.rs:236:9:236:9 | s [D] | semmle.label | s [D] | -| main.rs:236:13:236:23 | enum_source | semmle.label | enum_source | -| main.rs:236:13:236:23 | enum_source | semmle.label | enum_source | -| main.rs:236:13:236:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | -| main.rs:236:13:236:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | -| main.rs:237:11:237:11 | s [D] | semmle.label | s [D] | -| main.rs:237:11:237:11 | s [D] | semmle.label | s [D] | -| main.rs:239:9:239:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:239:9:239:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:239:35:239:35 | i | semmle.label | i | -| main.rs:239:35:239:35 | i | semmle.label | i | -| main.rs:239:47:239:47 | i | semmle.label | i | -| main.rs:239:47:239:47 | i | semmle.label | i | -| main.rs:245:9:245:9 | s [C] | semmle.label | s [C] | -| main.rs:245:9:245:9 | s [C] | semmle.label | s [C] | -| main.rs:245:13:245:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | -| main.rs:245:13:245:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | -| main.rs:245:15:245:20 | source | semmle.label | source | -| main.rs:245:15:245:20 | source | semmle.label | source | -| main.rs:246:11:246:11 | s [C] | semmle.label | s [C] | -| main.rs:246:11:246:11 | s [C] | semmle.label | s [C] | -| main.rs:247:9:247:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:247:9:247:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:247:35:247:35 | i | semmle.label | i | -| main.rs:247:35:247:35 | i | semmle.label | i | -| main.rs:247:47:247:47 | i | semmle.label | i | -| main.rs:247:47:247:47 | i | semmle.label | i | -| main.rs:261:18:261:18 | ... | semmle.label | ... | -| main.rs:261:18:261:18 | ... | semmle.label | ... | -| main.rs:261:26:261:26 | a | semmle.label | a | -| main.rs:261:26:261:26 | a | semmle.label | a | -| main.rs:262:9:262:19 | pass_source | semmle.label | pass_source | -| main.rs:262:9:262:19 | pass_source | semmle.label | pass_source | -| main.rs:264:9:264:19 | pass_source | semmle.label | pass_source | -| main.rs:264:9:264:19 | pass_source | semmle.label | pass_source | -| main.rs:264:25:264:25 | ... | semmle.label | ... | -| main.rs:264:25:264:25 | ... | semmle.label | ... | -| main.rs:265:18:265:18 | a | semmle.label | a | -| main.rs:265:18:265:18 | a | semmle.label | a | -| main.rs:268:14:268:19 | ...: i64 | semmle.label | ...: i64 | -| main.rs:268:14:268:19 | ...: i64 | semmle.label | ...: i64 | -| main.rs:269:18:269:18 | a | semmle.label | a | -| main.rs:269:18:269:18 | a | semmle.label | a | -| main.rs:271:9:271:19 | pass_source | semmle.label | pass_source | -| main.rs:271:9:271:19 | pass_source | semmle.label | pass_source | -| main.rs:273:9:273:19 | pass_source | semmle.label | pass_source | -| main.rs:273:9:273:19 | pass_source | semmle.label | pass_source | -| main.rs:273:36:273:36 | ... | semmle.label | ... | -| main.rs:273:36:273:36 | ... | semmle.label | ... | -| main.rs:274:18:274:18 | a | semmle.label | a | -| main.rs:274:18:274:18 | a | semmle.label | a | -| main.rs:283:9:283:9 | s | semmle.label | s | -| main.rs:283:9:283:9 | s | semmle.label | s | -| main.rs:283:13:283:22 | source(...) | semmle.label | source(...) | -| main.rs:283:13:283:22 | source(...) | semmle.label | source(...) | -| main.rs:284:5:284:13 | enum_sink | semmle.label | enum_sink | -| main.rs:284:5:284:13 | enum_sink | semmle.label | enum_sink | -| main.rs:284:15:284:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:284:15:284:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | -| main.rs:284:41:284:41 | s | semmle.label | s | -| main.rs:284:41:284:41 | s | semmle.label | s | -| main.rs:289:9:289:9 | s | semmle.label | s | -| main.rs:289:9:289:9 | s | semmle.label | s | -| main.rs:289:13:289:22 | source(...) | semmle.label | source(...) | -| main.rs:289:13:289:22 | source(...) | semmle.label | source(...) | -| main.rs:290:9:290:9 | e [D] | semmle.label | e [D] | -| main.rs:290:9:290:9 | e [D] | semmle.label | e [D] | -| main.rs:290:13:290:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:290:13:290:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | -| main.rs:290:39:290:39 | s | semmle.label | s | -| main.rs:290:39:290:39 | s | semmle.label | s | -| main.rs:291:5:291:5 | e [D] | semmle.label | e [D] | -| main.rs:291:5:291:5 | e [D] | semmle.label | e [D] | -| main.rs:291:7:291:10 | sink | semmle.label | sink | -| main.rs:291:7:291:10 | sink | semmle.label | sink | -| main.rs:300:9:300:9 | s | semmle.label | s | -| main.rs:300:9:300:9 | s | semmle.label | s | -| main.rs:300:13:300:25 | simple_source | semmle.label | simple_source | -| main.rs:300:13:300:25 | simple_source | semmle.label | simple_source | -| main.rs:300:13:300:29 | simple_source(...) | semmle.label | simple_source(...) | -| main.rs:300:13:300:29 | simple_source(...) | semmle.label | simple_source(...) | -| main.rs:301:10:301:10 | s | semmle.label | s | -| main.rs:301:10:301:10 | s | semmle.label | s | -| main.rs:308:9:308:9 | s | semmle.label | s | -| main.rs:308:9:308:9 | s | semmle.label | s | -| main.rs:308:13:308:22 | source(...) | semmle.label | source(...) | -| main.rs:308:13:308:22 | source(...) | semmle.label | source(...) | -| main.rs:309:5:309:15 | simple_sink | semmle.label | simple_sink | -| main.rs:309:5:309:15 | simple_sink | semmle.label | simple_sink | -| main.rs:309:17:309:17 | s | semmle.label | s | -| main.rs:309:17:309:17 | s | semmle.label | s | -| main.rs:317:5:317:14 | arg_source | semmle.label | arg_source | -| main.rs:317:5:317:14 | arg_source | semmle.label | arg_source | -| main.rs:317:16:317:16 | [post] i | semmle.label | [post] i | -| main.rs:317:16:317:16 | [post] i | semmle.label | [post] i | -| main.rs:318:10:318:10 | i | semmle.label | i | -| main.rs:318:10:318:10 | i | semmle.label | i | -| main.rs:370:9:370:10 | x1 | semmle.label | x1 | -| main.rs:370:9:370:10 | x1 | semmle.label | x1 | -| main.rs:370:14:370:23 | source(...) | semmle.label | source(...) | -| main.rs:370:14:370:23 | source(...) | semmle.label | source(...) | -| main.rs:370:14:370:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:370:14:370:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:371:10:371:11 | x1 | semmle.label | x1 | -| main.rs:371:10:371:11 | x1 | semmle.label | x1 | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:373:9:373:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | -| main.rs:373:14:380:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:373:15:376:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | -| main.rs:374:17:374:26 | source(...) | semmle.label | source(...) | -| main.rs:374:17:374:26 | source(...) | semmle.label | source(...) | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:381:10:381:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | -| main.rs:381:10:381:18 | x2.field1 | semmle.label | x2.field1 | -| main.rs:381:10:381:18 | x2.field1 | semmle.label | x2.field1 | -| main.rs:386:9:386:10 | x4 | semmle.label | x4 | -| main.rs:386:9:386:10 | x4 | semmle.label | x4 | -| main.rs:386:14:386:23 | source(...) | semmle.label | source(...) | -| main.rs:386:14:386:23 | source(...) | semmle.label | source(...) | -| main.rs:386:14:386:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:386:14:386:30 | ... .max(...) | semmle.label | ... .max(...) | -| main.rs:387:10:387:11 | x4 | semmle.label | x4 | -| main.rs:387:10:387:11 | x4 | semmle.label | x4 | -| main.rs:389:9:389:10 | x5 | semmle.label | x5 | -| main.rs:389:14:389:23 | source(...) | semmle.label | source(...) | -| main.rs:389:14:389:30 | ... .lt(...) | semmle.label | ... .lt(...) | -| main.rs:390:10:390:11 | x5 | semmle.label | x5 | -| main.rs:392:9:392:10 | x6 | semmle.label | x6 | -| main.rs:392:14:392:23 | source(...) | semmle.label | source(...) | -| main.rs:392:14:392:27 | ... < ... | semmle.label | ... < ... | -| main.rs:393:10:393:11 | x6 | semmle.label | x6 | +| main.rs:41:9:41:10 | s1 | semmle.label | s1 | +| main.rs:41:9:41:10 | s1 | semmle.label | s1 | +| main.rs:41:14:41:23 | source(...) | semmle.label | source(...) | +| main.rs:41:14:41:23 | source(...) | semmle.label | source(...) | +| main.rs:42:10:42:19 | snd(...) | semmle.label | snd(...) | +| main.rs:42:10:42:19 | snd(...) | semmle.label | snd(...) | +| main.rs:42:17:42:18 | s1 | semmle.label | s1 | +| main.rs:42:17:42:18 | s1 | semmle.label | s1 | +| main.rs:54:9:54:9 | s | semmle.label | s | +| main.rs:54:9:54:9 | s | semmle.label | s | +| main.rs:54:13:54:21 | source(...) | semmle.label | source(...) | +| main.rs:54:13:54:21 | source(...) | semmle.label | source(...) | +| main.rs:55:9:55:10 | e1 [A] | semmle.label | e1 [A] | +| main.rs:55:9:55:10 | e1 [A] | semmle.label | e1 [A] | +| main.rs:55:14:55:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | +| main.rs:55:14:55:28 | ...::A(...) [A] | semmle.label | ...::A(...) [A] | +| main.rs:55:27:55:27 | s | semmle.label | s | +| main.rs:55:27:55:27 | s | semmle.label | s | +| main.rs:56:10:56:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | +| main.rs:56:10:56:24 | get_var_pos(...) | semmle.label | get_var_pos(...) | +| main.rs:56:22:56:23 | e1 [A] | semmle.label | e1 [A] | +| main.rs:56:22:56:23 | e1 [A] | semmle.label | e1 [A] | +| main.rs:67:9:67:9 | s | semmle.label | s | +| main.rs:67:9:67:9 | s | semmle.label | s | +| main.rs:67:13:67:21 | source(...) | semmle.label | source(...) | +| main.rs:67:13:67:21 | source(...) | semmle.label | source(...) | +| main.rs:68:9:68:10 | e1 [B] | semmle.label | e1 [B] | +| main.rs:68:9:68:10 | e1 [B] | semmle.label | e1 [B] | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | +| main.rs:68:14:68:27 | set_var_pos(...) [B] | semmle.label | set_var_pos(...) [B] | +| main.rs:68:26:68:26 | s | semmle.label | s | +| main.rs:68:26:68:26 | s | semmle.label | s | +| main.rs:69:11:69:12 | e1 [B] | semmle.label | e1 [B] | +| main.rs:69:11:69:12 | e1 [B] | semmle.label | e1 [B] | +| main.rs:71:9:71:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | +| main.rs:71:9:71:23 | ...::B(...) [B] | semmle.label | ...::B(...) [B] | +| main.rs:71:22:71:22 | i | semmle.label | i | +| main.rs:71:22:71:22 | i | semmle.label | i | +| main.rs:71:33:71:33 | i | semmle.label | i | +| main.rs:71:33:71:33 | i | semmle.label | i | +| main.rs:86:9:86:9 | s | semmle.label | s | +| main.rs:86:9:86:9 | s | semmle.label | s | +| main.rs:86:13:86:21 | source(...) | semmle.label | source(...) | +| main.rs:86:13:86:21 | source(...) | semmle.label | source(...) | +| main.rs:87:9:87:10 | e1 [C] | semmle.label | e1 [C] | +| main.rs:87:9:87:10 | e1 [C] | semmle.label | e1 [C] | +| main.rs:87:14:87:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:87:14:87:42 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:87:40:87:40 | s | semmle.label | s | +| main.rs:87:40:87:40 | s | semmle.label | s | +| main.rs:88:10:88:26 | get_var_field(...) | semmle.label | get_var_field(...) | +| main.rs:88:10:88:26 | get_var_field(...) | semmle.label | get_var_field(...) | +| main.rs:88:24:88:25 | e1 [C] | semmle.label | e1 [C] | +| main.rs:88:24:88:25 | e1 [C] | semmle.label | e1 [C] | +| main.rs:99:9:99:9 | s | semmle.label | s | +| main.rs:99:9:99:9 | s | semmle.label | s | +| main.rs:99:13:99:21 | source(...) | semmle.label | source(...) | +| main.rs:99:13:99:21 | source(...) | semmle.label | source(...) | +| main.rs:100:9:100:10 | e1 [D] | semmle.label | e1 [D] | +| main.rs:100:9:100:10 | e1 [D] | semmle.label | e1 [D] | +| main.rs:100:14:100:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | +| main.rs:100:14:100:29 | set_var_field(...) [D] | semmle.label | set_var_field(...) [D] | +| main.rs:100:28:100:28 | s | semmle.label | s | +| main.rs:100:28:100:28 | s | semmle.label | s | +| main.rs:101:11:101:12 | e1 [D] | semmle.label | e1 [D] | +| main.rs:101:11:101:12 | e1 [D] | semmle.label | e1 [D] | +| main.rs:103:9:103:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:103:9:103:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:103:35:103:35 | i | semmle.label | i | +| main.rs:103:35:103:35 | i | semmle.label | i | +| main.rs:103:47:103:47 | i | semmle.label | i | +| main.rs:103:47:103:47 | i | semmle.label | i | +| main.rs:118:9:118:9 | s | semmle.label | s | +| main.rs:118:9:118:9 | s | semmle.label | s | +| main.rs:118:13:118:21 | source(...) | semmle.label | source(...) | +| main.rs:118:13:118:21 | source(...) | semmle.label | source(...) | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:119:9:119:17 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:119:21:122:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:120:17:120:17 | s | semmle.label | s | +| main.rs:120:17:120:17 | s | semmle.label | s | +| main.rs:123:10:123:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | +| main.rs:123:10:123:36 | get_struct_field(...) | semmle.label | get_struct_field(...) | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:123:27:123:35 | my_struct [MyStruct.field1] | semmle.label | my_struct [MyStruct.field1] | +| main.rs:140:9:140:9 | s | semmle.label | s | +| main.rs:140:9:140:9 | s | semmle.label | s | +| main.rs:140:13:140:21 | source(...) | semmle.label | source(...) | +| main.rs:140:13:140:21 | source(...) | semmle.label | source(...) | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:141:9:141:17 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | +| main.rs:141:21:141:39 | set_struct_field(...) [MyStruct.field2] | semmle.label | set_struct_field(...) [MyStruct.field2] | +| main.rs:141:38:141:38 | s | semmle.label | s | +| main.rs:141:38:141:38 | s | semmle.label | s | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:143:10:143:18 | my_struct [MyStruct.field2] | semmle.label | my_struct [MyStruct.field2] | +| main.rs:143:10:143:25 | my_struct.field2 | semmle.label | my_struct.field2 | +| main.rs:143:10:143:25 | my_struct.field2 | semmle.label | my_struct.field2 | +| main.rs:152:9:152:9 | s | semmle.label | s | +| main.rs:152:9:152:9 | s | semmle.label | s | +| main.rs:152:13:152:21 | source(...) | semmle.label | source(...) | +| main.rs:152:13:152:21 | source(...) | semmle.label | source(...) | +| main.rs:153:10:153:31 | get_array_element(...) | semmle.label | get_array_element(...) | +| main.rs:153:10:153:31 | get_array_element(...) | semmle.label | get_array_element(...) | +| main.rs:153:28:153:30 | [...] [element] | semmle.label | [...] [element] | +| main.rs:153:28:153:30 | [...] [element] | semmle.label | [...] [element] | +| main.rs:153:29:153:29 | s | semmle.label | s | +| main.rs:153:29:153:29 | s | semmle.label | s | +| main.rs:162:9:162:9 | s | semmle.label | s | +| main.rs:162:9:162:9 | s | semmle.label | s | +| main.rs:162:13:162:21 | source(...) | semmle.label | source(...) | +| main.rs:162:13:162:21 | source(...) | semmle.label | source(...) | +| main.rs:163:9:163:11 | arr [element] | semmle.label | arr [element] | +| main.rs:163:9:163:11 | arr [element] | semmle.label | arr [element] | +| main.rs:163:15:163:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | +| main.rs:163:15:163:34 | set_array_element(...) [element] | semmle.label | set_array_element(...) [element] | +| main.rs:163:33:163:33 | s | semmle.label | s | +| main.rs:163:33:163:33 | s | semmle.label | s | +| main.rs:164:10:164:12 | arr [element] | semmle.label | arr [element] | +| main.rs:164:10:164:12 | arr [element] | semmle.label | arr [element] | +| main.rs:164:10:164:15 | arr[0] | semmle.label | arr[0] | +| main.rs:164:10:164:15 | arr[0] | semmle.label | arr[0] | +| main.rs:173:9:173:9 | s | semmle.label | s | +| main.rs:173:9:173:9 | s | semmle.label | s | +| main.rs:173:13:173:22 | source(...) | semmle.label | source(...) | +| main.rs:173:13:173:22 | source(...) | semmle.label | source(...) | +| main.rs:174:9:174:9 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:174:9:174:9 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:174:13:174:18 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:174:14:174:14 | s | semmle.label | s | +| main.rs:174:14:174:14 | s | semmle.label | s | +| main.rs:175:10:175:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | +| main.rs:175:10:175:29 | get_tuple_element(...) | semmle.label | get_tuple_element(...) | +| main.rs:175:28:175:28 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:175:28:175:28 | t [tuple.0] | semmle.label | t [tuple.0] | +| main.rs:186:9:186:9 | s | semmle.label | s | +| main.rs:186:9:186:9 | s | semmle.label | s | +| main.rs:186:13:186:22 | source(...) | semmle.label | source(...) | +| main.rs:186:13:186:22 | source(...) | semmle.label | source(...) | +| main.rs:187:9:187:9 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:187:9:187:9 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | +| main.rs:187:13:187:32 | set_tuple_element(...) [tuple.1] | semmle.label | set_tuple_element(...) [tuple.1] | +| main.rs:187:31:187:31 | s | semmle.label | s | +| main.rs:187:31:187:31 | s | semmle.label | s | +| main.rs:189:10:189:10 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:189:10:189:10 | t [tuple.1] | semmle.label | t [tuple.1] | +| main.rs:189:10:189:12 | t.1 | semmle.label | t.1 | +| main.rs:189:10:189:12 | t.1 | semmle.label | t.1 | +| main.rs:201:9:201:9 | s | semmle.label | s | +| main.rs:201:9:201:9 | s | semmle.label | s | +| main.rs:201:13:201:22 | source(...) | semmle.label | source(...) | +| main.rs:201:13:201:22 | source(...) | semmle.label | source(...) | +| main.rs:202:14:202:14 | ... | semmle.label | ... | +| main.rs:202:14:202:14 | ... | semmle.label | ... | +| main.rs:203:14:203:14 | n | semmle.label | n | +| main.rs:203:14:203:14 | n | semmle.label | n | +| main.rs:206:11:206:11 | s | semmle.label | s | +| main.rs:206:11:206:11 | s | semmle.label | s | +| main.rs:210:13:210:22 | source(...) | semmle.label | source(...) | +| main.rs:210:13:210:22 | source(...) | semmle.label | source(...) | +| main.rs:211:17:211:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:211:17:211:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:211:40:211:40 | s | semmle.label | s | +| main.rs:211:40:211:40 | s | semmle.label | s | +| main.rs:212:9:212:9 | t | semmle.label | t | +| main.rs:212:9:212:9 | t | semmle.label | t | +| main.rs:212:13:212:24 | apply(...) | semmle.label | apply(...) | +| main.rs:212:13:212:24 | apply(...) | semmle.label | apply(...) | +| main.rs:212:23:212:23 | f [captured s] | semmle.label | f [captured s] | +| main.rs:212:23:212:23 | f [captured s] | semmle.label | f [captured s] | +| main.rs:213:10:213:10 | t | semmle.label | t | +| main.rs:213:10:213:10 | t | semmle.label | t | +| main.rs:217:9:217:9 | s | semmle.label | s | +| main.rs:217:9:217:9 | s | semmle.label | s | +| main.rs:217:13:217:22 | source(...) | semmle.label | source(...) | +| main.rs:217:13:217:22 | source(...) | semmle.label | source(...) | +| main.rs:218:14:218:14 | ... | semmle.label | ... | +| main.rs:218:14:218:14 | ... | semmle.label | ... | +| main.rs:218:17:218:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:218:17:218:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | +| main.rs:219:9:219:9 | t | semmle.label | t | +| main.rs:219:9:219:9 | t | semmle.label | t | +| main.rs:219:13:219:23 | apply(...) | semmle.label | apply(...) | +| main.rs:219:13:219:23 | apply(...) | semmle.label | apply(...) | +| main.rs:219:19:219:19 | s | semmle.label | s | +| main.rs:219:19:219:19 | s | semmle.label | s | +| main.rs:220:10:220:10 | t | semmle.label | t | +| main.rs:220:10:220:10 | t | semmle.label | t | +| main.rs:229:9:229:9 | s | semmle.label | s | +| main.rs:229:9:229:9 | s | semmle.label | s | +| main.rs:229:13:229:22 | source(...) | semmle.label | source(...) | +| main.rs:229:13:229:22 | source(...) | semmle.label | source(...) | +| main.rs:230:9:230:9 | t | semmle.label | t | +| main.rs:230:9:230:9 | t | semmle.label | t | +| main.rs:230:13:230:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | +| main.rs:230:13:230:31 | get_async_number(...) [future] | semmle.label | get_async_number(...) [future] | +| main.rs:230:13:230:37 | await ... | semmle.label | await ... | +| main.rs:230:13:230:37 | await ... | semmle.label | await ... | +| main.rs:230:30:230:30 | s | semmle.label | s | +| main.rs:230:30:230:30 | s | semmle.label | s | +| main.rs:231:10:231:10 | t | semmle.label | t | +| main.rs:231:10:231:10 | t | semmle.label | t | +| main.rs:250:9:250:9 | s [D] | semmle.label | s [D] | +| main.rs:250:9:250:9 | s [D] | semmle.label | s [D] | +| main.rs:250:13:250:23 | enum_source | semmle.label | enum_source | +| main.rs:250:13:250:23 | enum_source | semmle.label | enum_source | +| main.rs:250:13:250:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | +| main.rs:250:13:250:27 | enum_source(...) [D] | semmle.label | enum_source(...) [D] | +| main.rs:251:11:251:11 | s [D] | semmle.label | s [D] | +| main.rs:251:11:251:11 | s [D] | semmle.label | s [D] | +| main.rs:253:9:253:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:253:9:253:37 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:253:35:253:35 | i | semmle.label | i | +| main.rs:253:35:253:35 | i | semmle.label | i | +| main.rs:253:47:253:47 | i | semmle.label | i | +| main.rs:253:47:253:47 | i | semmle.label | i | +| main.rs:259:9:259:9 | s [C] | semmle.label | s [C] | +| main.rs:259:9:259:9 | s [C] | semmle.label | s [C] | +| main.rs:259:13:259:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | +| main.rs:259:13:259:24 | e.source(...) [C] | semmle.label | e.source(...) [C] | +| main.rs:259:15:259:20 | source | semmle.label | source | +| main.rs:259:15:259:20 | source | semmle.label | source | +| main.rs:260:11:260:11 | s [C] | semmle.label | s [C] | +| main.rs:260:11:260:11 | s [C] | semmle.label | s [C] | +| main.rs:261:9:261:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:261:9:261:37 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:261:35:261:35 | i | semmle.label | i | +| main.rs:261:35:261:35 | i | semmle.label | i | +| main.rs:261:47:261:47 | i | semmle.label | i | +| main.rs:261:47:261:47 | i | semmle.label | i | +| main.rs:275:18:275:18 | ... | semmle.label | ... | +| main.rs:275:18:275:18 | ... | semmle.label | ... | +| main.rs:275:26:275:26 | a | semmle.label | a | +| main.rs:275:26:275:26 | a | semmle.label | a | +| main.rs:276:9:276:19 | pass_source | semmle.label | pass_source | +| main.rs:276:9:276:19 | pass_source | semmle.label | pass_source | +| main.rs:278:9:278:19 | pass_source | semmle.label | pass_source | +| main.rs:278:9:278:19 | pass_source | semmle.label | pass_source | +| main.rs:278:25:278:25 | ... | semmle.label | ... | +| main.rs:278:25:278:25 | ... | semmle.label | ... | +| main.rs:279:18:279:18 | a | semmle.label | a | +| main.rs:279:18:279:18 | a | semmle.label | a | +| main.rs:282:14:282:19 | ...: i64 | semmle.label | ...: i64 | +| main.rs:282:14:282:19 | ...: i64 | semmle.label | ...: i64 | +| main.rs:283:18:283:18 | a | semmle.label | a | +| main.rs:283:18:283:18 | a | semmle.label | a | +| main.rs:285:9:285:19 | pass_source | semmle.label | pass_source | +| main.rs:285:9:285:19 | pass_source | semmle.label | pass_source | +| main.rs:287:9:287:19 | pass_source | semmle.label | pass_source | +| main.rs:287:9:287:19 | pass_source | semmle.label | pass_source | +| main.rs:287:36:287:36 | ... | semmle.label | ... | +| main.rs:287:36:287:36 | ... | semmle.label | ... | +| main.rs:288:18:288:18 | a | semmle.label | a | +| main.rs:288:18:288:18 | a | semmle.label | a | +| main.rs:297:9:297:9 | s | semmle.label | s | +| main.rs:297:9:297:9 | s | semmle.label | s | +| main.rs:297:13:297:22 | source(...) | semmle.label | source(...) | +| main.rs:297:13:297:22 | source(...) | semmle.label | source(...) | +| main.rs:298:5:298:13 | enum_sink | semmle.label | enum_sink | +| main.rs:298:5:298:13 | enum_sink | semmle.label | enum_sink | +| main.rs:298:15:298:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:298:15:298:43 | ...::C {...} [C] | semmle.label | ...::C {...} [C] | +| main.rs:298:41:298:41 | s | semmle.label | s | +| main.rs:298:41:298:41 | s | semmle.label | s | +| main.rs:303:9:303:9 | s | semmle.label | s | +| main.rs:303:9:303:9 | s | semmle.label | s | +| main.rs:303:13:303:22 | source(...) | semmle.label | source(...) | +| main.rs:303:13:303:22 | source(...) | semmle.label | source(...) | +| main.rs:304:9:304:9 | e [D] | semmle.label | e [D] | +| main.rs:304:9:304:9 | e [D] | semmle.label | e [D] | +| main.rs:304:13:304:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:304:13:304:41 | ...::D {...} [D] | semmle.label | ...::D {...} [D] | +| main.rs:304:39:304:39 | s | semmle.label | s | +| main.rs:304:39:304:39 | s | semmle.label | s | +| main.rs:305:5:305:5 | e [D] | semmle.label | e [D] | +| main.rs:305:5:305:5 | e [D] | semmle.label | e [D] | +| main.rs:305:7:305:10 | sink | semmle.label | sink | +| main.rs:305:7:305:10 | sink | semmle.label | sink | +| main.rs:314:9:314:9 | s | semmle.label | s | +| main.rs:314:9:314:9 | s | semmle.label | s | +| main.rs:314:13:314:25 | simple_source | semmle.label | simple_source | +| main.rs:314:13:314:25 | simple_source | semmle.label | simple_source | +| main.rs:314:13:314:29 | simple_source(...) | semmle.label | simple_source(...) | +| main.rs:314:13:314:29 | simple_source(...) | semmle.label | simple_source(...) | +| main.rs:315:10:315:10 | s | semmle.label | s | +| main.rs:315:10:315:10 | s | semmle.label | s | +| main.rs:322:9:322:9 | s | semmle.label | s | +| main.rs:322:9:322:9 | s | semmle.label | s | +| main.rs:322:13:322:22 | source(...) | semmle.label | source(...) | +| main.rs:322:13:322:22 | source(...) | semmle.label | source(...) | +| main.rs:323:5:323:15 | simple_sink | semmle.label | simple_sink | +| main.rs:323:5:323:15 | simple_sink | semmle.label | simple_sink | +| main.rs:323:17:323:17 | s | semmle.label | s | +| main.rs:323:17:323:17 | s | semmle.label | s | +| main.rs:331:5:331:14 | arg_source | semmle.label | arg_source | +| main.rs:331:5:331:14 | arg_source | semmle.label | arg_source | +| main.rs:331:16:331:16 | [post] i | semmle.label | [post] i | +| main.rs:331:16:331:16 | [post] i | semmle.label | [post] i | +| main.rs:332:10:332:10 | i | semmle.label | i | +| main.rs:332:10:332:10 | i | semmle.label | i | +| main.rs:384:9:384:10 | x1 | semmle.label | x1 | +| main.rs:384:9:384:10 | x1 | semmle.label | x1 | +| main.rs:384:14:384:23 | source(...) | semmle.label | source(...) | +| main.rs:384:14:384:23 | source(...) | semmle.label | source(...) | +| main.rs:384:14:384:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:384:14:384:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:385:10:385:11 | x1 | semmle.label | x1 | +| main.rs:385:10:385:11 | x1 | semmle.label | x1 | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:387:9:387:10 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | +| main.rs:387:14:394:6 | ... .max(...) [MyStruct.field1] | semmle.label | ... .max(...) [MyStruct.field1] | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:387:15:390:5 | MyStruct {...} [MyStruct.field1] | semmle.label | MyStruct {...} [MyStruct.field1] | +| main.rs:388:17:388:26 | source(...) | semmle.label | source(...) | +| main.rs:388:17:388:26 | source(...) | semmle.label | source(...) | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:395:10:395:11 | x2 [MyStruct.field1] | semmle.label | x2 [MyStruct.field1] | +| main.rs:395:10:395:18 | x2.field1 | semmle.label | x2.field1 | +| main.rs:395:10:395:18 | x2.field1 | semmle.label | x2.field1 | +| main.rs:400:9:400:10 | x4 | semmle.label | x4 | +| main.rs:400:9:400:10 | x4 | semmle.label | x4 | +| main.rs:400:14:400:23 | source(...) | semmle.label | source(...) | +| main.rs:400:14:400:23 | source(...) | semmle.label | source(...) | +| main.rs:400:14:400:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:400:14:400:30 | ... .max(...) | semmle.label | ... .max(...) | +| main.rs:401:10:401:11 | x4 | semmle.label | x4 | +| main.rs:401:10:401:11 | x4 | semmle.label | x4 | +| main.rs:403:9:403:10 | x5 | semmle.label | x5 | +| main.rs:403:14:403:23 | source(...) | semmle.label | source(...) | +| main.rs:403:14:403:30 | ... .lt(...) | semmle.label | ... .lt(...) | +| main.rs:404:10:404:11 | x5 | semmle.label | x5 | +| main.rs:406:9:406:10 | x6 | semmle.label | x6 | +| main.rs:406:14:406:23 | source(...) | semmle.label | source(...) | +| main.rs:406:14:406:27 | ... < ... | semmle.label | ... < ... | +| main.rs:407:10:407:11 | x6 | semmle.label | x6 | subpaths -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | main.rs:198:13:198:24 | apply(...) | -| main.rs:198:23:198:23 | f [captured s] | main.rs:197:40:197:40 | s | main.rs:197:17:197:42 | if ... {...} else {...} | main.rs:198:13:198:24 | apply(...) | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | main.rs:205:13:205:23 | apply(...) | -| main.rs:205:19:205:19 | s | main.rs:204:14:204:14 | ... | main.rs:204:17:204:42 | if ... {...} else {...} | main.rs:205:13:205:23 | apply(...) | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | main.rs:212:13:212:24 | apply(...) | +| main.rs:212:23:212:23 | f [captured s] | main.rs:211:40:211:40 | s | main.rs:211:17:211:42 | if ... {...} else {...} | main.rs:212:13:212:24 | apply(...) | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | main.rs:219:13:219:23 | apply(...) | +| main.rs:219:19:219:19 | s | main.rs:218:14:218:14 | ... | main.rs:218:17:218:42 | if ... {...} else {...} | main.rs:219:13:219:23 | apply(...) | testFailures invalidSpecComponent #select | main.rs:16:10:16:20 | identity(...) | main.rs:15:13:15:21 | source(...) | main.rs:16:10:16:20 | identity(...) | $@ | main.rs:15:13:15:21 | source(...) | source(...) | | main.rs:16:10:16:20 | identity(...) | main.rs:15:13:15:21 | source(...) | main.rs:16:10:16:20 | identity(...) | $@ | main.rs:15:13:15:21 | source(...) | source(...) | | main.rs:26:10:26:18 | coerce(...) | main.rs:25:13:25:22 | source(...) | main.rs:26:10:26:18 | coerce(...) | $@ | main.rs:25:13:25:22 | source(...) | source(...) | -| main.rs:42:10:42:24 | get_var_pos(...) | main.rs:40:13:40:21 | source(...) | main.rs:42:10:42:24 | get_var_pos(...) | $@ | main.rs:40:13:40:21 | source(...) | source(...) | -| main.rs:42:10:42:24 | get_var_pos(...) | main.rs:40:13:40:21 | source(...) | main.rs:42:10:42:24 | get_var_pos(...) | $@ | main.rs:40:13:40:21 | source(...) | source(...) | -| main.rs:57:33:57:33 | i | main.rs:53:13:53:21 | source(...) | main.rs:57:33:57:33 | i | $@ | main.rs:53:13:53:21 | source(...) | source(...) | -| main.rs:57:33:57:33 | i | main.rs:53:13:53:21 | source(...) | main.rs:57:33:57:33 | i | $@ | main.rs:53:13:53:21 | source(...) | source(...) | -| main.rs:74:10:74:26 | get_var_field(...) | main.rs:72:13:72:21 | source(...) | main.rs:74:10:74:26 | get_var_field(...) | $@ | main.rs:72:13:72:21 | source(...) | source(...) | -| main.rs:74:10:74:26 | get_var_field(...) | main.rs:72:13:72:21 | source(...) | main.rs:74:10:74:26 | get_var_field(...) | $@ | main.rs:72:13:72:21 | source(...) | source(...) | -| main.rs:89:47:89:47 | i | main.rs:85:13:85:21 | source(...) | main.rs:89:47:89:47 | i | $@ | main.rs:85:13:85:21 | source(...) | source(...) | -| main.rs:89:47:89:47 | i | main.rs:85:13:85:21 | source(...) | main.rs:89:47:89:47 | i | $@ | main.rs:85:13:85:21 | source(...) | source(...) | -| main.rs:109:10:109:36 | get_struct_field(...) | main.rs:104:13:104:21 | source(...) | main.rs:109:10:109:36 | get_struct_field(...) | $@ | main.rs:104:13:104:21 | source(...) | source(...) | -| main.rs:109:10:109:36 | get_struct_field(...) | main.rs:104:13:104:21 | source(...) | main.rs:109:10:109:36 | get_struct_field(...) | $@ | main.rs:104:13:104:21 | source(...) | source(...) | -| main.rs:129:10:129:25 | my_struct.field2 | main.rs:126:13:126:21 | source(...) | main.rs:129:10:129:25 | my_struct.field2 | $@ | main.rs:126:13:126:21 | source(...) | source(...) | -| main.rs:129:10:129:25 | my_struct.field2 | main.rs:126:13:126:21 | source(...) | main.rs:129:10:129:25 | my_struct.field2 | $@ | main.rs:126:13:126:21 | source(...) | source(...) | -| main.rs:139:10:139:31 | get_array_element(...) | main.rs:138:13:138:21 | source(...) | main.rs:139:10:139:31 | get_array_element(...) | $@ | main.rs:138:13:138:21 | source(...) | source(...) | -| main.rs:139:10:139:31 | get_array_element(...) | main.rs:138:13:138:21 | source(...) | main.rs:139:10:139:31 | get_array_element(...) | $@ | main.rs:138:13:138:21 | source(...) | source(...) | -| main.rs:150:10:150:15 | arr[0] | main.rs:148:13:148:21 | source(...) | main.rs:150:10:150:15 | arr[0] | $@ | main.rs:148:13:148:21 | source(...) | source(...) | -| main.rs:150:10:150:15 | arr[0] | main.rs:148:13:148:21 | source(...) | main.rs:150:10:150:15 | arr[0] | $@ | main.rs:148:13:148:21 | source(...) | source(...) | -| main.rs:161:10:161:29 | get_tuple_element(...) | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:29 | get_tuple_element(...) | $@ | main.rs:159:13:159:22 | source(...) | source(...) | -| main.rs:161:10:161:29 | get_tuple_element(...) | main.rs:159:13:159:22 | source(...) | main.rs:161:10:161:29 | get_tuple_element(...) | $@ | main.rs:159:13:159:22 | source(...) | source(...) | -| main.rs:175:10:175:12 | t.1 | main.rs:172:13:172:22 | source(...) | main.rs:175:10:175:12 | t.1 | $@ | main.rs:172:13:172:22 | source(...) | source(...) | -| main.rs:175:10:175:12 | t.1 | main.rs:172:13:172:22 | source(...) | main.rs:175:10:175:12 | t.1 | $@ | main.rs:172:13:172:22 | source(...) | source(...) | -| main.rs:189:14:189:14 | n | main.rs:187:13:187:22 | source(...) | main.rs:189:14:189:14 | n | $@ | main.rs:187:13:187:22 | source(...) | source(...) | -| main.rs:189:14:189:14 | n | main.rs:187:13:187:22 | source(...) | main.rs:189:14:189:14 | n | $@ | main.rs:187:13:187:22 | source(...) | source(...) | -| main.rs:199:10:199:10 | t | main.rs:196:13:196:22 | source(...) | main.rs:199:10:199:10 | t | $@ | main.rs:196:13:196:22 | source(...) | source(...) | -| main.rs:199:10:199:10 | t | main.rs:196:13:196:22 | source(...) | main.rs:199:10:199:10 | t | $@ | main.rs:196:13:196:22 | source(...) | source(...) | -| main.rs:206:10:206:10 | t | main.rs:203:13:203:22 | source(...) | main.rs:206:10:206:10 | t | $@ | main.rs:203:13:203:22 | source(...) | source(...) | -| main.rs:206:10:206:10 | t | main.rs:203:13:203:22 | source(...) | main.rs:206:10:206:10 | t | $@ | main.rs:203:13:203:22 | source(...) | source(...) | -| main.rs:217:10:217:10 | t | main.rs:215:13:215:22 | source(...) | main.rs:217:10:217:10 | t | $@ | main.rs:215:13:215:22 | source(...) | source(...) | -| main.rs:217:10:217:10 | t | main.rs:215:13:215:22 | source(...) | main.rs:217:10:217:10 | t | $@ | main.rs:215:13:215:22 | source(...) | source(...) | -| main.rs:239:47:239:47 | i | main.rs:236:13:236:23 | enum_source | main.rs:239:47:239:47 | i | $@ | main.rs:236:13:236:23 | enum_source | enum_source | -| main.rs:239:47:239:47 | i | main.rs:236:13:236:23 | enum_source | main.rs:239:47:239:47 | i | $@ | main.rs:236:13:236:23 | enum_source | enum_source | -| main.rs:247:47:247:47 | i | main.rs:245:15:245:20 | source | main.rs:247:47:247:47 | i | $@ | main.rs:245:15:245:20 | source | source | -| main.rs:247:47:247:47 | i | main.rs:245:15:245:20 | source | main.rs:247:47:247:47 | i | $@ | main.rs:245:15:245:20 | source | source | -| main.rs:261:26:261:26 | a | main.rs:262:9:262:19 | pass_source | main.rs:261:26:261:26 | a | $@ | main.rs:262:9:262:19 | pass_source | pass_source | -| main.rs:261:26:261:26 | a | main.rs:262:9:262:19 | pass_source | main.rs:261:26:261:26 | a | $@ | main.rs:262:9:262:19 | pass_source | pass_source | -| main.rs:265:18:265:18 | a | main.rs:264:9:264:19 | pass_source | main.rs:265:18:265:18 | a | $@ | main.rs:264:9:264:19 | pass_source | pass_source | -| main.rs:265:18:265:18 | a | main.rs:264:9:264:19 | pass_source | main.rs:265:18:265:18 | a | $@ | main.rs:264:9:264:19 | pass_source | pass_source | -| main.rs:269:18:269:18 | a | main.rs:271:9:271:19 | pass_source | main.rs:269:18:269:18 | a | $@ | main.rs:271:9:271:19 | pass_source | pass_source | -| main.rs:269:18:269:18 | a | main.rs:271:9:271:19 | pass_source | main.rs:269:18:269:18 | a | $@ | main.rs:271:9:271:19 | pass_source | pass_source | -| main.rs:274:18:274:18 | a | main.rs:273:9:273:19 | pass_source | main.rs:274:18:274:18 | a | $@ | main.rs:273:9:273:19 | pass_source | pass_source | -| main.rs:274:18:274:18 | a | main.rs:273:9:273:19 | pass_source | main.rs:274:18:274:18 | a | $@ | main.rs:273:9:273:19 | pass_source | pass_source | -| main.rs:284:5:284:13 | enum_sink | main.rs:283:13:283:22 | source(...) | main.rs:284:5:284:13 | enum_sink | $@ | main.rs:283:13:283:22 | source(...) | source(...) | -| main.rs:284:5:284:13 | enum_sink | main.rs:283:13:283:22 | source(...) | main.rs:284:5:284:13 | enum_sink | $@ | main.rs:283:13:283:22 | source(...) | source(...) | -| main.rs:291:7:291:10 | sink | main.rs:289:13:289:22 | source(...) | main.rs:291:7:291:10 | sink | $@ | main.rs:289:13:289:22 | source(...) | source(...) | -| main.rs:291:7:291:10 | sink | main.rs:289:13:289:22 | source(...) | main.rs:291:7:291:10 | sink | $@ | main.rs:289:13:289:22 | source(...) | source(...) | -| main.rs:301:10:301:10 | s | main.rs:300:13:300:25 | simple_source | main.rs:301:10:301:10 | s | $@ | main.rs:300:13:300:25 | simple_source | simple_source | -| main.rs:301:10:301:10 | s | main.rs:300:13:300:25 | simple_source | main.rs:301:10:301:10 | s | $@ | main.rs:300:13:300:25 | simple_source | simple_source | -| main.rs:309:5:309:15 | simple_sink | main.rs:308:13:308:22 | source(...) | main.rs:309:5:309:15 | simple_sink | $@ | main.rs:308:13:308:22 | source(...) | source(...) | -| main.rs:309:5:309:15 | simple_sink | main.rs:308:13:308:22 | source(...) | main.rs:309:5:309:15 | simple_sink | $@ | main.rs:308:13:308:22 | source(...) | source(...) | -| main.rs:318:10:318:10 | i | main.rs:317:5:317:14 | arg_source | main.rs:318:10:318:10 | i | $@ | main.rs:317:5:317:14 | arg_source | arg_source | -| main.rs:318:10:318:10 | i | main.rs:317:5:317:14 | arg_source | main.rs:318:10:318:10 | i | $@ | main.rs:317:5:317:14 | arg_source | arg_source | -| main.rs:371:10:371:11 | x1 | main.rs:370:14:370:23 | source(...) | main.rs:371:10:371:11 | x1 | $@ | main.rs:370:14:370:23 | source(...) | source(...) | -| main.rs:371:10:371:11 | x1 | main.rs:370:14:370:23 | source(...) | main.rs:371:10:371:11 | x1 | $@ | main.rs:370:14:370:23 | source(...) | source(...) | -| main.rs:381:10:381:18 | x2.field1 | main.rs:374:17:374:26 | source(...) | main.rs:381:10:381:18 | x2.field1 | $@ | main.rs:374:17:374:26 | source(...) | source(...) | -| main.rs:381:10:381:18 | x2.field1 | main.rs:374:17:374:26 | source(...) | main.rs:381:10:381:18 | x2.field1 | $@ | main.rs:374:17:374:26 | source(...) | source(...) | -| main.rs:387:10:387:11 | x4 | main.rs:386:14:386:23 | source(...) | main.rs:387:10:387:11 | x4 | $@ | main.rs:386:14:386:23 | source(...) | source(...) | -| main.rs:387:10:387:11 | x4 | main.rs:386:14:386:23 | source(...) | main.rs:387:10:387:11 | x4 | $@ | main.rs:386:14:386:23 | source(...) | source(...) | -| main.rs:390:10:390:11 | x5 | main.rs:389:14:389:23 | source(...) | main.rs:390:10:390:11 | x5 | $@ | main.rs:389:14:389:23 | source(...) | source(...) | -| main.rs:393:10:393:11 | x6 | main.rs:392:14:392:23 | source(...) | main.rs:393:10:393:11 | x6 | $@ | main.rs:392:14:392:23 | source(...) | source(...) | +| main.rs:42:10:42:19 | snd(...) | main.rs:41:14:41:23 | source(...) | main.rs:42:10:42:19 | snd(...) | $@ | main.rs:41:14:41:23 | source(...) | source(...) | +| main.rs:42:10:42:19 | snd(...) | main.rs:41:14:41:23 | source(...) | main.rs:42:10:42:19 | snd(...) | $@ | main.rs:41:14:41:23 | source(...) | source(...) | +| main.rs:56:10:56:24 | get_var_pos(...) | main.rs:54:13:54:21 | source(...) | main.rs:56:10:56:24 | get_var_pos(...) | $@ | main.rs:54:13:54:21 | source(...) | source(...) | +| main.rs:56:10:56:24 | get_var_pos(...) | main.rs:54:13:54:21 | source(...) | main.rs:56:10:56:24 | get_var_pos(...) | $@ | main.rs:54:13:54:21 | source(...) | source(...) | +| main.rs:71:33:71:33 | i | main.rs:67:13:67:21 | source(...) | main.rs:71:33:71:33 | i | $@ | main.rs:67:13:67:21 | source(...) | source(...) | +| main.rs:71:33:71:33 | i | main.rs:67:13:67:21 | source(...) | main.rs:71:33:71:33 | i | $@ | main.rs:67:13:67:21 | source(...) | source(...) | +| main.rs:88:10:88:26 | get_var_field(...) | main.rs:86:13:86:21 | source(...) | main.rs:88:10:88:26 | get_var_field(...) | $@ | main.rs:86:13:86:21 | source(...) | source(...) | +| main.rs:88:10:88:26 | get_var_field(...) | main.rs:86:13:86:21 | source(...) | main.rs:88:10:88:26 | get_var_field(...) | $@ | main.rs:86:13:86:21 | source(...) | source(...) | +| main.rs:103:47:103:47 | i | main.rs:99:13:99:21 | source(...) | main.rs:103:47:103:47 | i | $@ | main.rs:99:13:99:21 | source(...) | source(...) | +| main.rs:103:47:103:47 | i | main.rs:99:13:99:21 | source(...) | main.rs:103:47:103:47 | i | $@ | main.rs:99:13:99:21 | source(...) | source(...) | +| main.rs:123:10:123:36 | get_struct_field(...) | main.rs:118:13:118:21 | source(...) | main.rs:123:10:123:36 | get_struct_field(...) | $@ | main.rs:118:13:118:21 | source(...) | source(...) | +| main.rs:123:10:123:36 | get_struct_field(...) | main.rs:118:13:118:21 | source(...) | main.rs:123:10:123:36 | get_struct_field(...) | $@ | main.rs:118:13:118:21 | source(...) | source(...) | +| main.rs:143:10:143:25 | my_struct.field2 | main.rs:140:13:140:21 | source(...) | main.rs:143:10:143:25 | my_struct.field2 | $@ | main.rs:140:13:140:21 | source(...) | source(...) | +| main.rs:143:10:143:25 | my_struct.field2 | main.rs:140:13:140:21 | source(...) | main.rs:143:10:143:25 | my_struct.field2 | $@ | main.rs:140:13:140:21 | source(...) | source(...) | +| main.rs:153:10:153:31 | get_array_element(...) | main.rs:152:13:152:21 | source(...) | main.rs:153:10:153:31 | get_array_element(...) | $@ | main.rs:152:13:152:21 | source(...) | source(...) | +| main.rs:153:10:153:31 | get_array_element(...) | main.rs:152:13:152:21 | source(...) | main.rs:153:10:153:31 | get_array_element(...) | $@ | main.rs:152:13:152:21 | source(...) | source(...) | +| main.rs:164:10:164:15 | arr[0] | main.rs:162:13:162:21 | source(...) | main.rs:164:10:164:15 | arr[0] | $@ | main.rs:162:13:162:21 | source(...) | source(...) | +| main.rs:164:10:164:15 | arr[0] | main.rs:162:13:162:21 | source(...) | main.rs:164:10:164:15 | arr[0] | $@ | main.rs:162:13:162:21 | source(...) | source(...) | +| main.rs:175:10:175:29 | get_tuple_element(...) | main.rs:173:13:173:22 | source(...) | main.rs:175:10:175:29 | get_tuple_element(...) | $@ | main.rs:173:13:173:22 | source(...) | source(...) | +| main.rs:175:10:175:29 | get_tuple_element(...) | main.rs:173:13:173:22 | source(...) | main.rs:175:10:175:29 | get_tuple_element(...) | $@ | main.rs:173:13:173:22 | source(...) | source(...) | +| main.rs:189:10:189:12 | t.1 | main.rs:186:13:186:22 | source(...) | main.rs:189:10:189:12 | t.1 | $@ | main.rs:186:13:186:22 | source(...) | source(...) | +| main.rs:189:10:189:12 | t.1 | main.rs:186:13:186:22 | source(...) | main.rs:189:10:189:12 | t.1 | $@ | main.rs:186:13:186:22 | source(...) | source(...) | +| main.rs:203:14:203:14 | n | main.rs:201:13:201:22 | source(...) | main.rs:203:14:203:14 | n | $@ | main.rs:201:13:201:22 | source(...) | source(...) | +| main.rs:203:14:203:14 | n | main.rs:201:13:201:22 | source(...) | main.rs:203:14:203:14 | n | $@ | main.rs:201:13:201:22 | source(...) | source(...) | +| main.rs:213:10:213:10 | t | main.rs:210:13:210:22 | source(...) | main.rs:213:10:213:10 | t | $@ | main.rs:210:13:210:22 | source(...) | source(...) | +| main.rs:213:10:213:10 | t | main.rs:210:13:210:22 | source(...) | main.rs:213:10:213:10 | t | $@ | main.rs:210:13:210:22 | source(...) | source(...) | +| main.rs:220:10:220:10 | t | main.rs:217:13:217:22 | source(...) | main.rs:220:10:220:10 | t | $@ | main.rs:217:13:217:22 | source(...) | source(...) | +| main.rs:220:10:220:10 | t | main.rs:217:13:217:22 | source(...) | main.rs:220:10:220:10 | t | $@ | main.rs:217:13:217:22 | source(...) | source(...) | +| main.rs:231:10:231:10 | t | main.rs:229:13:229:22 | source(...) | main.rs:231:10:231:10 | t | $@ | main.rs:229:13:229:22 | source(...) | source(...) | +| main.rs:231:10:231:10 | t | main.rs:229:13:229:22 | source(...) | main.rs:231:10:231:10 | t | $@ | main.rs:229:13:229:22 | source(...) | source(...) | +| main.rs:253:47:253:47 | i | main.rs:250:13:250:23 | enum_source | main.rs:253:47:253:47 | i | $@ | main.rs:250:13:250:23 | enum_source | enum_source | +| main.rs:253:47:253:47 | i | main.rs:250:13:250:23 | enum_source | main.rs:253:47:253:47 | i | $@ | main.rs:250:13:250:23 | enum_source | enum_source | +| main.rs:261:47:261:47 | i | main.rs:259:15:259:20 | source | main.rs:261:47:261:47 | i | $@ | main.rs:259:15:259:20 | source | source | +| main.rs:261:47:261:47 | i | main.rs:259:15:259:20 | source | main.rs:261:47:261:47 | i | $@ | main.rs:259:15:259:20 | source | source | +| main.rs:275:26:275:26 | a | main.rs:276:9:276:19 | pass_source | main.rs:275:26:275:26 | a | $@ | main.rs:276:9:276:19 | pass_source | pass_source | +| main.rs:275:26:275:26 | a | main.rs:276:9:276:19 | pass_source | main.rs:275:26:275:26 | a | $@ | main.rs:276:9:276:19 | pass_source | pass_source | +| main.rs:279:18:279:18 | a | main.rs:278:9:278:19 | pass_source | main.rs:279:18:279:18 | a | $@ | main.rs:278:9:278:19 | pass_source | pass_source | +| main.rs:279:18:279:18 | a | main.rs:278:9:278:19 | pass_source | main.rs:279:18:279:18 | a | $@ | main.rs:278:9:278:19 | pass_source | pass_source | +| main.rs:283:18:283:18 | a | main.rs:285:9:285:19 | pass_source | main.rs:283:18:283:18 | a | $@ | main.rs:285:9:285:19 | pass_source | pass_source | +| main.rs:283:18:283:18 | a | main.rs:285:9:285:19 | pass_source | main.rs:283:18:283:18 | a | $@ | main.rs:285:9:285:19 | pass_source | pass_source | +| main.rs:288:18:288:18 | a | main.rs:287:9:287:19 | pass_source | main.rs:288:18:288:18 | a | $@ | main.rs:287:9:287:19 | pass_source | pass_source | +| main.rs:288:18:288:18 | a | main.rs:287:9:287:19 | pass_source | main.rs:288:18:288:18 | a | $@ | main.rs:287:9:287:19 | pass_source | pass_source | +| main.rs:298:5:298:13 | enum_sink | main.rs:297:13:297:22 | source(...) | main.rs:298:5:298:13 | enum_sink | $@ | main.rs:297:13:297:22 | source(...) | source(...) | +| main.rs:298:5:298:13 | enum_sink | main.rs:297:13:297:22 | source(...) | main.rs:298:5:298:13 | enum_sink | $@ | main.rs:297:13:297:22 | source(...) | source(...) | +| main.rs:305:7:305:10 | sink | main.rs:303:13:303:22 | source(...) | main.rs:305:7:305:10 | sink | $@ | main.rs:303:13:303:22 | source(...) | source(...) | +| main.rs:305:7:305:10 | sink | main.rs:303:13:303:22 | source(...) | main.rs:305:7:305:10 | sink | $@ | main.rs:303:13:303:22 | source(...) | source(...) | +| main.rs:315:10:315:10 | s | main.rs:314:13:314:25 | simple_source | main.rs:315:10:315:10 | s | $@ | main.rs:314:13:314:25 | simple_source | simple_source | +| main.rs:315:10:315:10 | s | main.rs:314:13:314:25 | simple_source | main.rs:315:10:315:10 | s | $@ | main.rs:314:13:314:25 | simple_source | simple_source | +| main.rs:323:5:323:15 | simple_sink | main.rs:322:13:322:22 | source(...) | main.rs:323:5:323:15 | simple_sink | $@ | main.rs:322:13:322:22 | source(...) | source(...) | +| main.rs:323:5:323:15 | simple_sink | main.rs:322:13:322:22 | source(...) | main.rs:323:5:323:15 | simple_sink | $@ | main.rs:322:13:322:22 | source(...) | source(...) | +| main.rs:332:10:332:10 | i | main.rs:331:5:331:14 | arg_source | main.rs:332:10:332:10 | i | $@ | main.rs:331:5:331:14 | arg_source | arg_source | +| main.rs:332:10:332:10 | i | main.rs:331:5:331:14 | arg_source | main.rs:332:10:332:10 | i | $@ | main.rs:331:5:331:14 | arg_source | arg_source | +| main.rs:385:10:385:11 | x1 | main.rs:384:14:384:23 | source(...) | main.rs:385:10:385:11 | x1 | $@ | main.rs:384:14:384:23 | source(...) | source(...) | +| main.rs:385:10:385:11 | x1 | main.rs:384:14:384:23 | source(...) | main.rs:385:10:385:11 | x1 | $@ | main.rs:384:14:384:23 | source(...) | source(...) | +| main.rs:395:10:395:18 | x2.field1 | main.rs:388:17:388:26 | source(...) | main.rs:395:10:395:18 | x2.field1 | $@ | main.rs:388:17:388:26 | source(...) | source(...) | +| main.rs:395:10:395:18 | x2.field1 | main.rs:388:17:388:26 | source(...) | main.rs:395:10:395:18 | x2.field1 | $@ | main.rs:388:17:388:26 | source(...) | source(...) | +| main.rs:401:10:401:11 | x4 | main.rs:400:14:400:23 | source(...) | main.rs:401:10:401:11 | x4 | $@ | main.rs:400:14:400:23 | source(...) | source(...) | +| main.rs:401:10:401:11 | x4 | main.rs:400:14:400:23 | source(...) | main.rs:401:10:401:11 | x4 | $@ | main.rs:400:14:400:23 | source(...) | source(...) | +| main.rs:404:10:404:11 | x5 | main.rs:403:14:403:23 | source(...) | main.rs:404:10:404:11 | x5 | $@ | main.rs:403:14:403:23 | source(...) | source(...) | +| main.rs:407:10:407:11 | x6 | main.rs:406:14:406:23 | source(...) | main.rs:407:10:407:11 | x6 | $@ | main.rs:406:14:406:23 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/models/models.ext.yml b/rust/ql/test/library-tests/dataflow/models/models.ext.yml index 52342e88022..01333c4e6a5 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.ext.yml +++ b/rust/ql/test/library-tests/dataflow/models/models.ext.yml @@ -20,6 +20,9 @@ extensions: extensible: summaryModel data: - ["main::coerce", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["main::snd", "Argument[1]", "ReturnValue", "value", "manual"] + # Wrong generated model which should not take effect due to the manual model above + - ["main::snd", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["main::get_var_pos", "Argument[0].Field[main::MyPosEnum::A(0)]", "ReturnValue", "value", "manual"] - ["main::set_var_pos", "Argument[0]", "ReturnValue.Field[main::MyPosEnum::B(0)]", "value", "manual"] - ["main::get_var_field", "Argument[0].Field[main::MyFieldEnum::C::field_c]", "ReturnValue", "value", "manual"] @@ -33,5 +36,4 @@ extensions: - ["main::apply", "Argument[0]", "Argument[1].Parameter[0]", "value", "manual"] - ["main::apply", "Argument[1].ReturnValue", "ReturnValue", "value", "manual"] - ["main::get_async_number", "Argument[0]", "ReturnValue.Future", "value", "manual"] - - ["<_ as core::cmp::Ord>::max", "Argument[self]", "ReturnValue", "value", "manual"] - ["<_ as core::cmp::PartialOrd>::lt", "Argument[self].Reference", "ReturnValue", "taint", "manual"] diff --git a/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected b/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected index 2c7fbc9381f..55b07f9efcc 100644 --- a/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/pointers/inline-flow.expected @@ -1,5 +1,6 @@ models | 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | +| 2 | Summary: <&mut as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | edges | main.rs:17:13:17:13 | a | main.rs:18:18:18:18 | a | provenance | | | main.rs:17:17:17:26 | source(...) | main.rs:17:13:17:13 | a | provenance | | @@ -40,17 +41,17 @@ edges | main.rs:59:34:59:34 | p [&ref] | main.rs:59:33:59:34 | * ... | provenance | MaD:1 | | main.rs:73:10:73:10 | [post] b [&ref] | main.rs:74:15:74:15 | b [&ref] | provenance | | | main.rs:73:14:73:23 | source(...) | main.rs:73:10:73:10 | [post] b [&ref] | provenance | | -| main.rs:74:15:74:15 | b [&ref] | main.rs:74:14:74:15 | * ... | provenance | MaD:1 | +| main.rs:74:15:74:15 | b [&ref] | main.rs:74:14:74:15 | * ... | provenance | MaD:2 | | main.rs:90:11:90:16 | [post] &mut a [&ref] | main.rs:90:16:90:16 | [post] a | provenance | | | main.rs:90:16:90:16 | [post] a | main.rs:91:14:91:14 | a | provenance | | | main.rs:90:21:90:30 | source(...) | main.rs:90:11:90:16 | [post] &mut a [&ref] | provenance | | | main.rs:105:10:105:10 | [post] c [&ref] | main.rs:106:15:106:15 | c [&ref] | provenance | | | main.rs:105:14:105:23 | source(...) | main.rs:105:10:105:10 | [post] c [&ref] | provenance | | -| main.rs:106:15:106:15 | c [&ref] | main.rs:106:14:106:15 | * ... | provenance | MaD:1 | +| main.rs:106:15:106:15 | c [&ref] | main.rs:106:14:106:15 | * ... | provenance | MaD:2 | | main.rs:112:13:112:21 | ref mut a | main.rs:112:21:112:21 | a [&ref] | provenance | | | main.rs:112:21:112:21 | a [&ref] | main.rs:113:15:113:15 | a [&ref] | provenance | | | main.rs:112:25:112:34 | source(...) | main.rs:112:13:112:21 | ref mut a | provenance | | -| main.rs:113:15:113:15 | a [&ref] | main.rs:113:14:113:15 | * ... | provenance | MaD:1 | +| main.rs:113:15:113:15 | a [&ref] | main.rs:113:14:113:15 | * ... | provenance | MaD:2 | | main.rs:149:14:149:24 | ...: MyNumber [MyNumber] | main.rs:150:11:150:11 | m [MyNumber] | provenance | | | main.rs:150:11:150:11 | m [MyNumber] | main.rs:151:9:151:34 | ...::MyNumber(...) [MyNumber] | provenance | | | main.rs:151:9:151:34 | ...::MyNumber(...) [MyNumber] | main.rs:151:28:151:33 | number | provenance | | @@ -92,7 +93,7 @@ edges | main.rs:210:17:210:17 | [post] p [&ref] | main.rs:211:15:211:15 | p [&ref] | provenance | | | main.rs:210:20:210:29 | source(...) | main.rs:200:29:200:38 | ...: i64 | provenance | | | main.rs:210:20:210:29 | source(...) | main.rs:210:17:210:17 | [post] p [&ref] | provenance | | -| main.rs:211:15:211:15 | p [&ref] | main.rs:211:14:211:15 | * ... | provenance | MaD:1 | +| main.rs:211:15:211:15 | p [&ref] | main.rs:211:14:211:15 | * ... | provenance | MaD:2 | | main.rs:218:17:218:22 | [post] &mut n [&ref] | main.rs:218:22:218:22 | [post] n | provenance | | | main.rs:218:22:218:22 | [post] n | main.rs:219:14:219:14 | n | provenance | | | main.rs:218:25:218:34 | source(...) | main.rs:200:29:200:38 | ...: i64 | provenance | | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected index 7fd1387d652..1314393fd0a 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/database/InlineFlow.expected @@ -50,6 +50,10 @@ edges | test.rs:42:20:42:21 | t1 [element] | test.rs:42:13:42:15 | row | provenance | | | test.rs:48:22:48:30 | query_map | test.rs:50:14:50:24 | ...: i64 | provenance | Src:MaD:3 | | test.rs:50:14:50:24 | ...: i64 | test.rs:51:22:51:27 | values | provenance | | +| test.rs:55:22:55:30 | query_map | test.rs:57:14:57:39 | ...: ... | provenance | Src:MaD:3 | +| test.rs:57:14:57:39 | ...: ... | test.rs:58:22:58:29 | values.0 | provenance | | +| test.rs:57:14:57:39 | ...: ... | test.rs:59:22:59:29 | values.1 | provenance | | +| test.rs:57:14:57:39 | ...: ... | test.rs:60:22:60:29 | values.2 | provenance | | | test.rs:64:13:64:17 | total | test.rs:68:14:68:18 | total | provenance | | | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | test.rs:64:21:67:11 | TryExpr | provenance | | | test.rs:64:21:67:11 | TryExpr | test.rs:64:13:64:17 | total | provenance | | @@ -61,6 +65,13 @@ edges | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:11 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:12 | | test.rs:66:19:66:21 | row | test.rs:66:13:66:21 | ... + ... | provenance | MaD:15 | +| test.rs:70:22:70:31 | query_fold | test.rs:70:83:70:105 | ...: ... | provenance | Src:MaD:2 | +| test.rs:70:83:70:105 | ...: ... | test.rs:71:17:71:18 | id | provenance | | +| test.rs:70:83:70:105 | ...: ... | test.rs:72:17:72:20 | name | provenance | | +| test.rs:70:83:70:105 | ...: ... | test.rs:73:17:73:19 | age | provenance | | +| test.rs:71:17:71:18 | id | test.rs:74:18:74:19 | id | provenance | | +| test.rs:72:17:72:20 | name | test.rs:75:18:75:21 | name | provenance | | +| test.rs:73:17:73:19 | age | test.rs:76:18:76:20 | age | provenance | | | test.rs:105:13:105:14 | v1 | test.rs:106:14:106:15 | v1 | provenance | | | test.rs:105:24:105:33 | row.get(...) [Some] | test.rs:105:24:105:42 | ... .unwrap() | provenance | MaD:16 | | test.rs:105:24:105:42 | ... .unwrap() | test.rs:105:13:105:14 | v1 | provenance | | @@ -81,6 +92,10 @@ edges | test.rs:114:28:114:35 | take_opt | test.rs:114:24:114:38 | row.take_opt(...) [Some, Ok] | provenance | Src:MaD:10 | | test.rs:135:22:135:30 | query_map | test.rs:137:14:137:24 | ...: i64 | provenance | Src:MaD:5 | | test.rs:137:14:137:24 | ...: i64 | test.rs:138:22:138:27 | values | provenance | | +| test.rs:142:22:142:30 | query_map | test.rs:144:14:144:39 | ...: ... | provenance | Src:MaD:5 | +| test.rs:144:14:144:39 | ...: ... | test.rs:145:22:145:29 | values.0 | provenance | | +| test.rs:144:14:144:39 | ...: ... | test.rs:146:22:146:29 | values.1 | provenance | | +| test.rs:144:14:144:39 | ...: ... | test.rs:147:22:147:29 | values.2 | provenance | | | test.rs:151:13:151:17 | total | test.rs:155:14:155:18 | total | provenance | | | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | test.rs:151:21:154:16 | await ... [Ok] | provenance | | | test.rs:151:21:154:16 | await ... [Ok] | test.rs:151:21:154:17 | TryExpr | provenance | | @@ -93,6 +108,13 @@ edges | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:11 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:12 | | test.rs:153:19:153:21 | row | test.rs:153:13:153:21 | ... + ... | provenance | MaD:15 | +| test.rs:157:22:157:31 | query_fold | test.rs:157:83:157:105 | ...: ... | provenance | Src:MaD:4 | +| test.rs:157:83:157:105 | ...: ... | test.rs:158:17:158:18 | id | provenance | | +| test.rs:157:83:157:105 | ...: ... | test.rs:159:17:159:20 | name | provenance | | +| test.rs:157:83:157:105 | ...: ... | test.rs:160:17:160:19 | age | provenance | | +| test.rs:158:17:158:18 | id | test.rs:161:18:161:19 | id | provenance | | +| test.rs:159:17:159:20 | name | test.rs:162:18:162:21 | name | provenance | | +| test.rs:160:17:160:19 | age | test.rs:163:18:163:20 | age | provenance | | nodes | test.rs:18:13:18:14 | v1 | semmle.label | v1 | | test.rs:18:24:18:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | @@ -135,6 +157,11 @@ nodes | test.rs:48:22:48:30 | query_map | semmle.label | query_map | | test.rs:50:14:50:24 | ...: i64 | semmle.label | ...: i64 | | test.rs:51:22:51:27 | values | semmle.label | values | +| test.rs:55:22:55:30 | query_map | semmle.label | query_map | +| test.rs:57:14:57:39 | ...: ... | semmle.label | ...: ... | +| test.rs:58:22:58:29 | values.0 | semmle.label | values.0 | +| test.rs:59:22:59:29 | values.1 | semmle.label | values.1 | +| test.rs:60:22:60:29 | values.2 | semmle.label | values.2 | | test.rs:64:13:64:17 | total | semmle.label | total | | test.rs:64:21:67:10 | conn.query_fold(...) [Ok] | semmle.label | conn.query_fold(...) [Ok] | | test.rs:64:21:67:11 | TryExpr | semmle.label | TryExpr | @@ -145,6 +172,14 @@ nodes | test.rs:66:13:66:21 | ... + ... | semmle.label | ... + ... | | test.rs:66:19:66:21 | row | semmle.label | row | | test.rs:68:14:68:18 | total | semmle.label | total | +| test.rs:70:22:70:31 | query_fold | semmle.label | query_fold | +| test.rs:70:83:70:105 | ...: ... | semmle.label | ...: ... | +| test.rs:71:17:71:18 | id | semmle.label | id | +| test.rs:72:17:72:20 | name | semmle.label | name | +| test.rs:73:17:73:19 | age | semmle.label | age | +| test.rs:74:18:74:19 | id | semmle.label | id | +| test.rs:75:18:75:21 | name | semmle.label | name | +| test.rs:76:18:76:20 | age | semmle.label | age | | test.rs:105:13:105:14 | v1 | semmle.label | v1 | | test.rs:105:24:105:33 | row.get(...) [Some] | semmle.label | row.get(...) [Some] | | test.rs:105:24:105:42 | ... .unwrap() | semmle.label | ... .unwrap() | @@ -170,6 +205,11 @@ nodes | test.rs:135:22:135:30 | query_map | semmle.label | query_map | | test.rs:137:14:137:24 | ...: i64 | semmle.label | ...: i64 | | test.rs:138:22:138:27 | values | semmle.label | values | +| test.rs:142:22:142:30 | query_map | semmle.label | query_map | +| test.rs:144:14:144:39 | ...: ... | semmle.label | ...: ... | +| test.rs:145:22:145:29 | values.0 | semmle.label | values.0 | +| test.rs:146:22:146:29 | values.1 | semmle.label | values.1 | +| test.rs:147:22:147:29 | values.2 | semmle.label | values.2 | | test.rs:151:13:151:17 | total | semmle.label | total | | test.rs:151:21:154:10 | conn.query_fold(...) [future, Ok] | semmle.label | conn.query_fold(...) [future, Ok] | | test.rs:151:21:154:16 | await ... [Ok] | semmle.label | await ... [Ok] | @@ -181,6 +221,14 @@ nodes | test.rs:153:13:153:21 | ... + ... | semmle.label | ... + ... | | test.rs:153:19:153:21 | row | semmle.label | row | | test.rs:155:14:155:18 | total | semmle.label | total | +| test.rs:157:22:157:31 | query_fold | semmle.label | query_fold | +| test.rs:157:83:157:105 | ...: ... | semmle.label | ...: ... | +| test.rs:158:17:158:18 | id | semmle.label | id | +| test.rs:159:17:159:20 | name | semmle.label | name | +| test.rs:160:17:160:19 | age | semmle.label | age | +| test.rs:161:18:161:19 | id | semmle.label | id | +| test.rs:162:18:162:21 | name | semmle.label | name | +| test.rs:163:18:163:20 | age | semmle.label | age | subpaths testFailures #select @@ -192,12 +240,24 @@ testFailures | test.rs:41:14:41:70 | ... .unwrap() | test.rs:41:42:41:44 | get | test.rs:41:14:41:70 | ... .unwrap() | $@ | test.rs:41:42:41:44 | get | get | | test.rs:44:22:44:22 | v | test.rs:40:27:40:35 | exec_iter | test.rs:44:22:44:22 | v | $@ | test.rs:40:27:40:35 | exec_iter | exec_iter | | test.rs:51:22:51:27 | values | test.rs:48:22:48:30 | query_map | test.rs:51:22:51:27 | values | $@ | test.rs:48:22:48:30 | query_map | query_map | +| test.rs:58:22:58:29 | values.0 | test.rs:55:22:55:30 | query_map | test.rs:58:22:58:29 | values.0 | $@ | test.rs:55:22:55:30 | query_map | query_map | +| test.rs:59:22:59:29 | values.1 | test.rs:55:22:55:30 | query_map | test.rs:59:22:59:29 | values.1 | $@ | test.rs:55:22:55:30 | query_map | query_map | +| test.rs:60:22:60:29 | values.2 | test.rs:55:22:55:30 | query_map | test.rs:60:22:60:29 | values.2 | $@ | test.rs:55:22:55:30 | query_map | query_map | | test.rs:65:18:65:20 | row | test.rs:64:26:64:35 | query_fold | test.rs:65:18:65:20 | row | $@ | test.rs:64:26:64:35 | query_fold | query_fold | | test.rs:68:14:68:18 | total | test.rs:64:26:64:35 | query_fold | test.rs:68:14:68:18 | total | $@ | test.rs:64:26:64:35 | query_fold | query_fold | +| test.rs:74:18:74:19 | id | test.rs:70:22:70:31 | query_fold | test.rs:74:18:74:19 | id | $@ | test.rs:70:22:70:31 | query_fold | query_fold | +| test.rs:75:18:75:21 | name | test.rs:70:22:70:31 | query_fold | test.rs:75:18:75:21 | name | $@ | test.rs:70:22:70:31 | query_fold | query_fold | +| test.rs:76:18:76:20 | age | test.rs:70:22:70:31 | query_fold | test.rs:76:18:76:20 | age | $@ | test.rs:70:22:70:31 | query_fold | query_fold | | test.rs:106:14:106:15 | v1 | test.rs:105:28:105:30 | get | test.rs:106:14:106:15 | v1 | $@ | test.rs:105:28:105:30 | get | get | | test.rs:109:14:109:15 | v2 | test.rs:108:28:108:34 | get_opt | test.rs:109:14:109:15 | v2 | $@ | test.rs:108:28:108:34 | get_opt | get_opt | | test.rs:112:14:112:15 | v3 | test.rs:111:28:111:31 | take | test.rs:112:14:112:15 | v3 | $@ | test.rs:111:28:111:31 | take | take | | test.rs:115:14:115:15 | v4 | test.rs:114:28:114:35 | take_opt | test.rs:115:14:115:15 | v4 | $@ | test.rs:114:28:114:35 | take_opt | take_opt | | test.rs:138:22:138:27 | values | test.rs:135:22:135:30 | query_map | test.rs:138:22:138:27 | values | $@ | test.rs:135:22:135:30 | query_map | query_map | +| test.rs:145:22:145:29 | values.0 | test.rs:142:22:142:30 | query_map | test.rs:145:22:145:29 | values.0 | $@ | test.rs:142:22:142:30 | query_map | query_map | +| test.rs:146:22:146:29 | values.1 | test.rs:142:22:142:30 | query_map | test.rs:146:22:146:29 | values.1 | $@ | test.rs:142:22:142:30 | query_map | query_map | +| test.rs:147:22:147:29 | values.2 | test.rs:142:22:142:30 | query_map | test.rs:147:22:147:29 | values.2 | $@ | test.rs:142:22:142:30 | query_map | query_map | | test.rs:152:18:152:20 | row | test.rs:151:26:151:35 | query_fold | test.rs:152:18:152:20 | row | $@ | test.rs:151:26:151:35 | query_fold | query_fold | | test.rs:155:14:155:18 | total | test.rs:151:26:151:35 | query_fold | test.rs:155:14:155:18 | total | $@ | test.rs:151:26:151:35 | query_fold | query_fold | +| test.rs:161:18:161:19 | id | test.rs:157:22:157:31 | query_fold | test.rs:161:18:161:19 | id | $@ | test.rs:157:22:157:31 | query_fold | query_fold | +| test.rs:162:18:162:21 | name | test.rs:157:22:157:31 | query_fold | test.rs:162:18:162:21 | name | $@ | test.rs:157:22:157:31 | query_fold | query_fold | +| test.rs:163:18:163:20 | age | test.rs:157:22:157:31 | query_fold | test.rs:163:18:163:20 | age | $@ | test.rs:157:22:157:31 | query_fold | query_fold | diff --git a/rust/ql/test/library-tests/dataflow/sources/database/test.rs b/rust/ql/test/library-tests/dataflow/sources/database/test.rs index 5fbaef71144..618830091a6 100644 --- a/rust/ql/test/library-tests/dataflow/sources/database/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/database/test.rs @@ -55,9 +55,9 @@ mod test_mysql { let _ = conn.query_map( // $ Alert[rust/summary/taint-sources] "SELECT id, name, age FROM person", |values: (i64, String, i32)| -> () { - sink(values.0); // $ MISSING: hasTaintFlow - sink(values.1); // $ MISSING: hasTaintFlow - sink(values.2); // $ MISSING: hasTaintFlow + sink(values.0); // $ hasTaintFlow + sink(values.1); // $ hasTaintFlow + sink(values.2); // $ hasTaintFlow } )?; @@ -71,9 +71,9 @@ mod test_mysql { let id: i64 = row.0; let name: String = row.1; let age: i32 = row.2; - sink(id); // $ MISSING: hasTaintFlow - sink(name); // $ MISSING: hasTaintFlow - sink(age); // $ MISSING: hasTaintFlow + sink(id); // $ hasTaintFlow + sink(name); // $ hasTaintFlow + sink(age); // $ hasTaintFlow acc + 1 })?; @@ -142,9 +142,9 @@ mod test_mysql_async { let _ = conn.query_map( // $ Alert[rust/summary/taint-sources] "SELECT id, name, age FROM person", |values: (i64, String, i32)| -> () { - sink(values.0); // $ MISSING: hasTaintFlow - sink(values.1); // $ MISSING: hasTaintFlow - sink(values.2); // $ MISSING: hasTaintFlow + sink(values.0); // $ hasTaintFlow + sink(values.1); // $ hasTaintFlow + sink(values.2); // $ hasTaintFlow } ).await?; @@ -158,9 +158,9 @@ mod test_mysql_async { let id: i64 = row.0; let name: String = row.1; let age: i32 = row.2; - sink(id); // $ MISSING: hasTaintFlow - sink(name); // $ MISSING: hasTaintFlow - sink(age); // $ MISSING: hasTaintFlow + sink(id); // $ hasTaintFlow + sink(name); // $ hasTaintFlow + sink(age); // $ hasTaintFlow acc + 1 }).await?; diff --git a/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected index 60066fdd74e..ac8b8c8c334 100644 --- a/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/env/InlineFlow.expected @@ -6,54 +6,64 @@ models | 5 | Source: std::env::home_dir; ReturnValue.Field[core::option::Option::Some(0)]; commandargs | | 6 | Source: std::env::var; ReturnValue.Field[core::result::Result::Ok(0)]; environment | | 7 | Source: std::env::var_os; ReturnValue.Field[core::option::Option::Some(0)]; environment | -| 8 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value | -| 9 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 10 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | -| 11 | Summary: ::expect; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 12 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 13 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 14 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 15 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 8 | Source: std::env::vars; ReturnValue.Element; environment | +| 9 | Source: std::env::vars_os; ReturnValue.Element; environment | +| 10 | Summary: <_ as core::iter::traits::iterator::Iterator>::collect; Argument[self].Element; ReturnValue.Element; value | +| 11 | Summary: <_ as core::iter::traits::iterator::Iterator>::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 12 | Summary: <_ as core::ops::index::Index>::index; Argument[self].Reference.Element; ReturnValue.Reference; value | +| 13 | Summary: ::expect; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 14 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 15 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 16 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 17 | Summary: ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | edges | test.rs:6:10:6:22 | ...::var | test.rs:6:10:6:30 | ...::var(...) | provenance | Src:MaD:6 | | test.rs:7:10:7:25 | ...::var_os | test.rs:7:10:7:33 | ...::var_os(...) | provenance | Src:MaD:7 | | test.rs:9:9:9:12 | var1 | test.rs:12:10:12:13 | var1 | provenance | | | test.rs:9:16:9:28 | ...::var | test.rs:9:16:9:36 | ...::var(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:9:16:9:36 | ...::var(...) [Ok] | test.rs:9:16:9:59 | ... .expect(...) | provenance | MaD:13 | +| test.rs:9:16:9:36 | ...::var(...) [Ok] | test.rs:9:16:9:59 | ... .expect(...) | provenance | MaD:15 | | test.rs:9:16:9:59 | ... .expect(...) | test.rs:9:9:9:12 | var1 | provenance | | | test.rs:10:9:10:12 | var2 | test.rs:13:10:13:13 | var2 | provenance | | | test.rs:10:16:10:31 | ...::var_os | test.rs:10:16:10:39 | ...::var_os(...) [Some] | provenance | Src:MaD:7 | -| test.rs:10:16:10:39 | ...::var_os(...) [Some] | test.rs:10:16:10:48 | ... .unwrap() | provenance | MaD:12 | +| test.rs:10:16:10:39 | ...::var_os(...) [Some] | test.rs:10:16:10:48 | ... .unwrap() | provenance | MaD:14 | | test.rs:10:16:10:48 | ... .unwrap() | test.rs:10:9:10:12 | var2 | provenance | | +| test.rs:15:9:15:20 | TuplePat | test.rs:16:14:16:16 | key | provenance | | +| test.rs:15:9:15:20 | TuplePat | test.rs:17:14:17:18 | value | provenance | | +| test.rs:15:25:15:38 | ...::vars | test.rs:15:25:15:40 | ...::vars(...) [element] | provenance | Src:MaD:8 | +| test.rs:15:25:15:40 | ...::vars(...) [element] | test.rs:15:9:15:20 | TuplePat | provenance | | +| test.rs:20:9:20:20 | TuplePat | test.rs:21:14:21:16 | key | provenance | | +| test.rs:20:9:20:20 | TuplePat | test.rs:22:14:22:18 | value | provenance | | +| test.rs:20:25:20:41 | ...::vars_os | test.rs:20:25:20:43 | ...::vars_os(...) [element] | provenance | Src:MaD:9 | +| test.rs:20:25:20:43 | ...::vars_os(...) [element] | test.rs:20:9:20:20 | TuplePat | provenance | | | test.rs:27:9:27:12 | args [element] | test.rs:28:20:28:23 | args [element] | provenance | | | test.rs:27:9:27:12 | args [element] | test.rs:29:17:29:20 | args [element] | provenance | | | test.rs:27:29:27:42 | ...::args | test.rs:27:29:27:44 | ...::args(...) [element] | provenance | Src:MaD:1 | -| test.rs:27:29:27:44 | ...::args(...) [element] | test.rs:27:29:27:54 | ... .collect() [element] | provenance | MaD:8 | +| test.rs:27:29:27:44 | ...::args(...) [element] | test.rs:27:29:27:54 | ... .collect() [element] | provenance | MaD:10 | | test.rs:27:29:27:54 | ... .collect() [element] | test.rs:27:9:27:12 | args [element] | provenance | | | test.rs:28:9:28:15 | my_path [&ref] | test.rs:34:10:34:16 | my_path | provenance | | | test.rs:28:19:28:26 | &... [&ref] | test.rs:28:9:28:15 | my_path [&ref] | provenance | | -| test.rs:28:20:28:23 | args [element] | test.rs:28:20:28:26 | args[0] | provenance | MaD:10 | +| test.rs:28:20:28:23 | args [element] | test.rs:28:20:28:26 | args[0] | provenance | MaD:12 | | test.rs:28:20:28:26 | args[0] | test.rs:28:19:28:26 | &... [&ref] | provenance | | | test.rs:29:9:29:12 | arg1 [&ref] | test.rs:35:10:35:13 | arg1 | provenance | | | test.rs:29:16:29:23 | &... [&ref] | test.rs:29:9:29:12 | arg1 [&ref] | provenance | | -| test.rs:29:17:29:20 | args [element] | test.rs:29:17:29:23 | args[1] | provenance | MaD:10 | +| test.rs:29:17:29:20 | args [element] | test.rs:29:17:29:23 | args[1] | provenance | MaD:12 | | test.rs:29:17:29:23 | args[1] | test.rs:29:16:29:23 | &... [&ref] | provenance | | | test.rs:30:9:30:12 | arg2 | test.rs:36:10:36:13 | arg2 | provenance | | | test.rs:30:16:30:29 | ...::args | test.rs:30:16:30:31 | ...::args(...) [element] | provenance | Src:MaD:1 | -| test.rs:30:16:30:31 | ...::args(...) [element] | test.rs:30:16:30:38 | ... .nth(...) [Some] | provenance | MaD:9 | -| test.rs:30:16:30:38 | ... .nth(...) [Some] | test.rs:30:16:30:47 | ... .unwrap() | provenance | MaD:12 | +| test.rs:30:16:30:31 | ...::args(...) [element] | test.rs:30:16:30:38 | ... .nth(...) [Some] | provenance | MaD:11 | +| test.rs:30:16:30:38 | ... .nth(...) [Some] | test.rs:30:16:30:47 | ... .unwrap() | provenance | MaD:14 | | test.rs:30:16:30:47 | ... .unwrap() | test.rs:30:9:30:12 | arg2 | provenance | | | test.rs:31:9:31:12 | arg3 | test.rs:37:10:37:13 | arg3 | provenance | | | test.rs:31:16:31:32 | ...::args_os | test.rs:31:16:31:34 | ...::args_os(...) [element] | provenance | Src:MaD:2 | -| test.rs:31:16:31:34 | ...::args_os(...) [element] | test.rs:31:16:31:41 | ... .nth(...) [Some] | provenance | MaD:9 | -| test.rs:31:16:31:41 | ... .nth(...) [Some] | test.rs:31:16:31:50 | ... .unwrap() | provenance | MaD:12 | +| test.rs:31:16:31:34 | ...::args_os(...) [element] | test.rs:31:16:31:41 | ... .nth(...) [Some] | provenance | MaD:11 | +| test.rs:31:16:31:41 | ... .nth(...) [Some] | test.rs:31:16:31:50 | ... .unwrap() | provenance | MaD:14 | | test.rs:31:16:31:50 | ... .unwrap() | test.rs:31:9:31:12 | arg3 | provenance | | | test.rs:32:9:32:12 | arg4 | test.rs:38:10:38:13 | arg4 | provenance | | | test.rs:32:16:32:29 | ...::args | test.rs:32:16:32:31 | ...::args(...) [element] | provenance | Src:MaD:1 | -| test.rs:32:16:32:31 | ...::args(...) [element] | test.rs:32:16:32:38 | ... .nth(...) [Some] | provenance | MaD:9 | -| test.rs:32:16:32:38 | ... .nth(...) [Some] | test.rs:32:16:32:47 | ... .unwrap() | provenance | MaD:12 | -| test.rs:32:16:32:47 | ... .unwrap() | test.rs:32:16:32:64 | ... .parse() [Ok] | provenance | MaD:15 | -| test.rs:32:16:32:64 | ... .parse() [Ok] | test.rs:32:16:32:73 | ... .unwrap() | provenance | MaD:14 | +| test.rs:32:16:32:31 | ...::args(...) [element] | test.rs:32:16:32:38 | ... .nth(...) [Some] | provenance | MaD:11 | +| test.rs:32:16:32:38 | ... .nth(...) [Some] | test.rs:32:16:32:47 | ... .unwrap() | provenance | MaD:14 | +| test.rs:32:16:32:47 | ... .unwrap() | test.rs:32:16:32:64 | ... .parse() [Ok] | provenance | MaD:17 | +| test.rs:32:16:32:64 | ... .parse() [Ok] | test.rs:32:16:32:73 | ... .unwrap() | provenance | MaD:16 | | test.rs:32:16:32:73 | ... .unwrap() | test.rs:32:9:32:12 | arg4 | provenance | | | test.rs:40:9:40:11 | arg | test.rs:41:14:41:16 | arg | provenance | | | test.rs:40:16:40:29 | ...::args | test.rs:40:16:40:31 | ...::args(...) [element] | provenance | Src:MaD:1 | @@ -63,15 +73,15 @@ edges | test.rs:44:16:44:34 | ...::args_os(...) [element] | test.rs:44:9:44:11 | arg | provenance | | | test.rs:50:9:50:11 | dir | test.rs:54:10:54:12 | dir | provenance | | | test.rs:50:15:50:35 | ...::current_dir | test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | provenance | Src:MaD:3 | -| test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | test.rs:50:15:50:54 | ... .expect(...) | provenance | MaD:13 | +| test.rs:50:15:50:37 | ...::current_dir(...) [Ok] | test.rs:50:15:50:54 | ... .expect(...) | provenance | MaD:15 | | test.rs:50:15:50:54 | ... .expect(...) | test.rs:50:9:50:11 | dir | provenance | | | test.rs:51:9:51:11 | exe | test.rs:55:10:55:12 | exe | provenance | | | test.rs:51:15:51:35 | ...::current_exe | test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | provenance | Src:MaD:4 | -| test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | test.rs:51:15:51:54 | ... .expect(...) | provenance | MaD:13 | +| test.rs:51:15:51:37 | ...::current_exe(...) [Ok] | test.rs:51:15:51:54 | ... .expect(...) | provenance | MaD:15 | | test.rs:51:15:51:54 | ... .expect(...) | test.rs:51:9:51:11 | exe | provenance | | | test.rs:52:9:52:12 | home | test.rs:56:10:56:13 | home | provenance | | | test.rs:52:16:52:33 | ...::home_dir | test.rs:52:16:52:35 | ...::home_dir(...) [Some] | provenance | Src:MaD:5 | -| test.rs:52:16:52:35 | ...::home_dir(...) [Some] | test.rs:52:16:52:52 | ... .expect(...) | provenance | MaD:11 | +| test.rs:52:16:52:35 | ...::home_dir(...) [Some] | test.rs:52:16:52:52 | ... .expect(...) | provenance | MaD:13 | | test.rs:52:16:52:52 | ... .expect(...) | test.rs:52:9:52:12 | home | provenance | | nodes | test.rs:6:10:6:22 | ...::var | semmle.label | ...::var | @@ -88,6 +98,16 @@ nodes | test.rs:10:16:10:48 | ... .unwrap() | semmle.label | ... .unwrap() | | test.rs:12:10:12:13 | var1 | semmle.label | var1 | | test.rs:13:10:13:13 | var2 | semmle.label | var2 | +| test.rs:15:9:15:20 | TuplePat | semmle.label | TuplePat | +| test.rs:15:25:15:38 | ...::vars | semmle.label | ...::vars | +| test.rs:15:25:15:40 | ...::vars(...) [element] | semmle.label | ...::vars(...) [element] | +| test.rs:16:14:16:16 | key | semmle.label | key | +| test.rs:17:14:17:18 | value | semmle.label | value | +| test.rs:20:9:20:20 | TuplePat | semmle.label | TuplePat | +| test.rs:20:25:20:41 | ...::vars_os | semmle.label | ...::vars_os | +| test.rs:20:25:20:43 | ...::vars_os(...) [element] | semmle.label | ...::vars_os(...) [element] | +| test.rs:21:14:21:16 | key | semmle.label | key | +| test.rs:22:14:22:18 | value | semmle.label | value | | test.rs:27:9:27:12 | args [element] | semmle.label | args [element] | | test.rs:27:29:27:42 | ...::args | semmle.label | ...::args | | test.rs:27:29:27:44 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | @@ -152,6 +172,10 @@ testFailures | test.rs:7:10:7:33 | ...::var_os(...) | test.rs:7:10:7:25 | ...::var_os | test.rs:7:10:7:33 | ...::var_os(...) | $@ | test.rs:7:10:7:25 | ...::var_os | ...::var_os | | test.rs:12:10:12:13 | var1 | test.rs:9:16:9:28 | ...::var | test.rs:12:10:12:13 | var1 | $@ | test.rs:9:16:9:28 | ...::var | ...::var | | test.rs:13:10:13:13 | var2 | test.rs:10:16:10:31 | ...::var_os | test.rs:13:10:13:13 | var2 | $@ | test.rs:10:16:10:31 | ...::var_os | ...::var_os | +| test.rs:16:14:16:16 | key | test.rs:15:25:15:38 | ...::vars | test.rs:16:14:16:16 | key | $@ | test.rs:15:25:15:38 | ...::vars | ...::vars | +| test.rs:17:14:17:18 | value | test.rs:15:25:15:38 | ...::vars | test.rs:17:14:17:18 | value | $@ | test.rs:15:25:15:38 | ...::vars | ...::vars | +| test.rs:21:14:21:16 | key | test.rs:20:25:20:41 | ...::vars_os | test.rs:21:14:21:16 | key | $@ | test.rs:20:25:20:41 | ...::vars_os | ...::vars_os | +| test.rs:22:14:22:18 | value | test.rs:20:25:20:41 | ...::vars_os | test.rs:22:14:22:18 | value | $@ | test.rs:20:25:20:41 | ...::vars_os | ...::vars_os | | test.rs:34:10:34:16 | my_path | test.rs:27:29:27:42 | ...::args | test.rs:34:10:34:16 | my_path | $@ | test.rs:27:29:27:42 | ...::args | ...::args | | test.rs:35:10:35:13 | arg1 | test.rs:27:29:27:42 | ...::args | test.rs:35:10:35:13 | arg1 | $@ | test.rs:27:29:27:42 | ...::args | ...::args | | test.rs:36:10:36:13 | arg2 | test.rs:30:16:30:29 | ...::args | test.rs:36:10:36:13 | arg2 | $@ | test.rs:30:16:30:29 | ...::args | ...::args | diff --git a/rust/ql/test/library-tests/dataflow/sources/env/test.rs b/rust/ql/test/library-tests/dataflow/sources/env/test.rs index e02aa7c8f1b..b5af0b412d3 100644 --- a/rust/ql/test/library-tests/dataflow/sources/env/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/env/test.rs @@ -13,13 +13,13 @@ fn test_env_vars() { sink(var2); // $ hasTaintFlow="PATH" for (key, value) in std::env::vars() { // $ Alert[rust/summary/taint-sources] - sink(key); // $ MISSING: hasTaintFlow - sink(value); // $ MISSING: hasTaintFlow + sink(key); // $ hasTaintFlow + sink(value); // $ hasTaintFlow } for (key, value) in std::env::vars_os() { // $ Alert[rust/summary/taint-sources] - sink(key); // $ MISSING: hasTaintFlow - sink(value); // $ MISSING: hasTaintFlow + sink(key); // $ hasTaintFlow + sink(value); // $ hasTaintFlow } } diff --git a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected index 22bc5f61d77..6f012e837a9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/InlineFlow.expected @@ -10,51 +10,43 @@ models | 9 | Source: ::file_name; ReturnValue; file | | 10 | Source: ::path; ReturnValue; file | | 11 | Source: std::fs::read; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 12 | Source: std::fs::read; ReturnValue; file | -| 13 | Source: std::fs::read_link; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 14 | Source: std::fs::read_to_string; ReturnValue.Field[core::result::Result::Ok(0)]; file | -| 15 | Source: std::fs::read_to_string; ReturnValue; file | -| 16 | Source: tokio::fs::read::read; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | -| 17 | Source: tokio::fs::read_link::read_link; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | -| 18 | Source: tokio::fs::read_to_string::read_to_string; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | -| 19 | Summary: <_ as async_std::io::read::ReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 20 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | -| 21 | Summary: <_ as std::io::Read>::bytes; Argument[self]; ReturnValue; taint | -| 22 | Summary: <_ as std::io::Read>::chain; Argument[0]; ReturnValue; taint | -| 23 | Summary: <_ as std::io::Read>::chain; Argument[self]; ReturnValue; taint | -| 24 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 25 | Summary: <_ as std::io::Read>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | -| 26 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 27 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | -| 28 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | -| 29 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | -| 30 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_buf; Argument[self].Reference; Argument[0].Reference; taint | -| 31 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | -| 32 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_f32; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 33 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i16; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 34 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i64_le; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 35 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | -| 36 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | -| 37 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | -| 38 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 39 | Summary: ::as_path; Argument[self]; ReturnValue; value | +| 12 | Source: std::fs::read_link; ReturnValue.Field[core::result::Result::Ok(0)]; file | +| 13 | Source: std::fs::read_to_string; ReturnValue.Field[core::result::Result::Ok(0)]; file | +| 14 | Source: tokio::fs::read::read; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | +| 15 | Source: tokio::fs::read_link::read_link; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | +| 16 | Source: tokio::fs::read_to_string::read_to_string; ReturnValue.Future.Field[core::result::Result::Ok(0)]; file | +| 17 | Summary: <_ as async_std::io::read::ReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 18 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | +| 19 | Summary: <_ as std::io::Read>::bytes; Argument[self]; ReturnValue; taint | +| 20 | Summary: <_ as std::io::Read>::chain; Argument[0]; ReturnValue; taint | +| 21 | Summary: <_ as std::io::Read>::chain; Argument[self]; ReturnValue; taint | +| 22 | Summary: <_ as std::io::Read>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 23 | Summary: <_ as std::io::Read>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | +| 24 | Summary: <_ as std::io::Read>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | +| 25 | Summary: <_ as std::io::Read>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | +| 26 | Summary: <_ as std::io::Read>::take; Argument[self]; ReturnValue; taint | +| 27 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read; Argument[self].Reference; Argument[0].Reference; taint | +| 28 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_buf; Argument[self].Reference; Argument[0].Reference; taint | +| 29 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_exact; Argument[self].Reference; Argument[0].Reference; taint | +| 30 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_f32; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 31 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i16; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 32 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_i64_le; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 33 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_end; Argument[self].Reference; Argument[0].Reference; taint | +| 34 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_to_string; Argument[self].Reference; Argument[0].Reference; taint | +| 35 | Summary: <_ as tokio::io::util::async_read_ext::AsyncReadExt>::read_u8; Argument[self].Reference; ReturnValue.Future.Field[core::result::Result::Ok(0)]; taint | +| 36 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 37 | Summary: ::as_path; Argument[self].Reference; ReturnValue.Reference; value | edges | test.rs:12:13:12:18 | buffer | test.rs:13:14:13:19 | buffer | provenance | | -| test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:43 | ...::read [Ok] | provenance | Src:MaD:11 | | test.rs:12:31:12:43 | ...::read | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | Src:MaD:11 | -| test.rs:12:31:12:43 | ...::read [Ok] | test.rs:12:31:12:55 | ...::read(...) [Ok] | provenance | MaD:12 | | test.rs:12:31:12:55 | ...::read(...) [Ok] | test.rs:12:31:12:56 | TryExpr | provenance | | | test.rs:12:31:12:56 | TryExpr | test.rs:12:13:12:18 | buffer | provenance | | | test.rs:17:13:17:18 | buffer | test.rs:18:14:18:19 | buffer | provenance | | -| test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:38 | ...::read [Ok] | provenance | Src:MaD:11 | | test.rs:17:31:17:38 | ...::read | test.rs:17:31:17:50 | ...::read(...) [Ok] | provenance | Src:MaD:11 | -| test.rs:17:31:17:38 | ...::read [Ok] | test.rs:17:31:17:50 | ...::read(...) [Ok] | provenance | MaD:12 | | test.rs:17:31:17:50 | ...::read(...) [Ok] | test.rs:17:31:17:51 | TryExpr | provenance | | | test.rs:17:31:17:51 | TryExpr | test.rs:17:13:17:18 | buffer | provenance | | | test.rs:22:13:22:18 | buffer | test.rs:23:14:23:19 | buffer | provenance | | -| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:39 | ...::read_to_string [Ok] | provenance | Src:MaD:14 | -| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | Src:MaD:14 | -| test.rs:22:22:22:39 | ...::read_to_string [Ok] | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | MaD:15 | +| test.rs:22:22:22:39 | ...::read_to_string | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | provenance | Src:MaD:13 | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | test.rs:22:22:22:52 | TryExpr | provenance | | | test.rs:22:22:22:52 | TryExpr | test.rs:22:13:22:18 | buffer | provenance | | | test.rs:29:13:29:16 | path | test.rs:30:14:30:17 | path | provenance | | @@ -62,43 +54,41 @@ edges | test.rs:29:13:29:16 | path | test.rs:41:14:41:17 | path | provenance | | | test.rs:29:20:29:27 | e.path() | test.rs:29:13:29:16 | path | provenance | | | test.rs:29:22:29:25 | path | test.rs:29:20:29:27 | e.path() | provenance | Src:MaD:4 MaD:4 | -| test.rs:30:14:30:17 | path | test.rs:30:14:30:25 | path.clone() | provenance | MaD:20 | -| test.rs:31:14:31:17 | path | test.rs:31:14:31:25 | path.clone() | provenance | MaD:20 | -| test.rs:31:14:31:25 | path.clone() | test.rs:31:14:31:35 | ... .as_path() | provenance | MaD:39 | +| test.rs:30:14:30:17 | path | test.rs:30:14:30:25 | path.clone() | provenance | MaD:18 | +| test.rs:31:14:31:17 | path | test.rs:31:14:31:25 | path.clone() | provenance | MaD:18 | +| test.rs:31:14:31:25 | path.clone() | test.rs:31:14:31:35 | ... .as_path() | provenance | MaD:37 | | test.rs:43:13:43:21 | file_name | test.rs:44:14:44:22 | file_name | provenance | | | test.rs:43:13:43:21 | file_name | test.rs:49:14:49:22 | file_name | provenance | | | test.rs:43:25:43:37 | e.file_name() | test.rs:43:13:43:21 | file_name | provenance | | | test.rs:43:27:43:35 | file_name | test.rs:43:25:43:37 | e.file_name() | provenance | Src:MaD:3 MaD:3 | -| test.rs:44:14:44:22 | file_name | test.rs:44:14:44:30 | file_name.clone() | provenance | MaD:20 | +| test.rs:44:14:44:22 | file_name | test.rs:44:14:44:30 | file_name.clone() | provenance | MaD:18 | | test.rs:65:13:65:18 | target | test.rs:66:14:66:19 | target | provenance | | -| test.rs:65:22:65:34 | ...::read_link | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | provenance | Src:MaD:13 | +| test.rs:65:22:65:34 | ...::read_link | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | provenance | Src:MaD:12 | | test.rs:65:22:65:49 | ...::read_link(...) [Ok] | test.rs:65:22:65:50 | TryExpr | provenance | | | test.rs:65:22:65:50 | TryExpr | test.rs:65:13:65:18 | target | provenance | | | test.rs:74:13:74:18 | buffer | test.rs:75:14:75:19 | buffer | provenance | | -| test.rs:74:31:74:45 | ...::read | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:16 | +| test.rs:74:31:74:45 | ...::read | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | | test.rs:74:31:74:57 | ...::read(...) [future, Ok] | test.rs:74:31:74:63 | await ... [Ok] | provenance | | | test.rs:74:31:74:63 | await ... [Ok] | test.rs:74:31:74:64 | TryExpr | provenance | | | test.rs:74:31:74:64 | TryExpr | test.rs:74:13:74:18 | buffer | provenance | | | test.rs:79:13:79:18 | buffer | test.rs:80:14:80:19 | buffer | provenance | | -| test.rs:79:31:79:45 | ...::read | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:16 | +| test.rs:79:31:79:45 | ...::read | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | provenance | Src:MaD:14 | | test.rs:79:31:79:57 | ...::read(...) [future, Ok] | test.rs:79:31:79:63 | await ... [Ok] | provenance | | | test.rs:79:31:79:63 | await ... [Ok] | test.rs:79:31:79:64 | TryExpr | provenance | | | test.rs:79:31:79:64 | TryExpr | test.rs:79:13:79:18 | buffer | provenance | | | test.rs:84:13:84:18 | buffer | test.rs:85:14:85:19 | buffer | provenance | | -| test.rs:84:22:84:46 | ...::read_to_string | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | provenance | Src:MaD:18 | +| test.rs:84:22:84:46 | ...::read_to_string | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | provenance | Src:MaD:16 | | test.rs:84:22:84:58 | ...::read_to_string(...) [future, Ok] | test.rs:84:22:84:64 | await ... [Ok] | provenance | | | test.rs:84:22:84:64 | await ... [Ok] | test.rs:84:22:84:65 | TryExpr | provenance | | | test.rs:84:22:84:65 | TryExpr | test.rs:84:13:84:18 | buffer | provenance | | | test.rs:90:13:90:16 | path | test.rs:92:14:92:17 | path | provenance | | | test.rs:90:20:90:31 | entry.path() | test.rs:90:13:90:16 | path | provenance | | | test.rs:90:26:90:29 | path | test.rs:90:20:90:31 | entry.path() | provenance | Src:MaD:10 MaD:10 | -| test.rs:90:26:90:29 | path | test.rs:90:20:90:31 | entry.path() | provenance | Src:MaD:10 MaD:10 | | test.rs:91:13:91:21 | file_name | test.rs:93:14:93:22 | file_name | provenance | | | test.rs:91:25:91:41 | entry.file_name() | test.rs:91:13:91:21 | file_name | provenance | | | test.rs:91:31:91:39 | file_name | test.rs:91:25:91:41 | entry.file_name() | provenance | Src:MaD:9 MaD:9 | -| test.rs:91:31:91:39 | file_name | test.rs:91:25:91:41 | entry.file_name() | provenance | Src:MaD:9 MaD:9 | | test.rs:97:13:97:18 | target | test.rs:98:14:98:19 | target | provenance | | -| test.rs:97:22:97:41 | ...::read_link | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | provenance | Src:MaD:17 | +| test.rs:97:22:97:41 | ...::read_link | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | provenance | Src:MaD:15 | | test.rs:97:22:97:56 | ...::read_link(...) [future, Ok] | test.rs:97:22:97:62 | await ... [Ok] | provenance | | | test.rs:97:22:97:62 | await ... [Ok] | test.rs:97:22:97:63 | TryExpr | provenance | | | test.rs:97:22:97:63 | TryExpr | test.rs:97:13:97:18 | target | provenance | | @@ -110,45 +100,45 @@ edges | test.rs:107:20:107:38 | ...::open | test.rs:107:20:107:50 | ...::open(...) [Ok] | provenance | Src:MaD:5 | | test.rs:107:20:107:50 | ...::open(...) [Ok] | test.rs:107:20:107:51 | TryExpr | provenance | | | test.rs:107:20:107:51 | TryExpr | test.rs:107:9:107:16 | mut file | provenance | | -| test.rs:111:22:111:25 | file | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:111:22:111:25 | file | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:111:32:111:42 | [post] &mut buffer [&ref] | test.rs:111:37:111:42 | [post] buffer | provenance | | | test.rs:111:37:111:42 | [post] buffer | test.rs:112:15:112:20 | buffer | provenance | | | test.rs:112:15:112:20 | buffer | test.rs:112:14:112:20 | &buffer | provenance | | -| test.rs:117:22:117:25 | file | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | provenance | MaD:26 | +| test.rs:117:22:117:25 | file | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | provenance | MaD:24 | | test.rs:117:39:117:49 | [post] &mut buffer [&ref] | test.rs:117:44:117:49 | [post] buffer | provenance | | | test.rs:117:44:117:49 | [post] buffer | test.rs:118:15:118:20 | buffer | provenance | | | test.rs:118:15:118:20 | buffer | test.rs:118:14:118:20 | &buffer | provenance | | -| test.rs:123:22:123:25 | file | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:123:22:123:25 | file | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | provenance | MaD:25 | | test.rs:123:42:123:52 | [post] &mut buffer [&ref] | test.rs:123:47:123:52 | [post] buffer | provenance | | | test.rs:123:47:123:52 | [post] buffer | test.rs:124:15:124:20 | buffer | provenance | | | test.rs:124:15:124:20 | buffer | test.rs:124:14:124:20 | &buffer | provenance | | -| test.rs:129:9:129:12 | file | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | provenance | MaD:25 | +| test.rs:129:9:129:12 | file | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | provenance | MaD:23 | | test.rs:129:25:129:35 | [post] &mut buffer [&ref] | test.rs:129:30:129:35 | [post] buffer | provenance | | | test.rs:129:30:129:35 | [post] buffer | test.rs:130:15:130:20 | buffer | provenance | | | test.rs:130:15:130:20 | buffer | test.rs:130:14:130:20 | &buffer | provenance | | -| test.rs:133:17:133:20 | file | test.rs:133:17:133:28 | file.bytes() | provenance | MaD:21 | +| test.rs:133:17:133:20 | file | test.rs:133:17:133:28 | file.bytes() | provenance | MaD:19 | | test.rs:133:17:133:28 | file.bytes() | test.rs:134:14:134:17 | byte | provenance | | | test.rs:140:13:140:18 | mut f1 | test.rs:142:22:142:23 | f1 | provenance | | -| test.rs:140:22:140:63 | ... .open(...) [Ok] | test.rs:140:22:140:72 | ... .unwrap() | provenance | MaD:38 | +| test.rs:140:22:140:63 | ... .open(...) [Ok] | test.rs:140:22:140:72 | ... .unwrap() | provenance | MaD:36 | | test.rs:140:22:140:72 | ... .unwrap() | test.rs:140:13:140:18 | mut f1 | provenance | | | test.rs:140:50:140:53 | open | test.rs:140:22:140:63 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:142:22:142:23 | f1 | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:142:22:142:23 | f1 | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:142:30:142:40 | [post] &mut buffer [&ref] | test.rs:142:35:142:40 | [post] buffer | provenance | | | test.rs:142:35:142:40 | [post] buffer | test.rs:143:15:143:20 | buffer | provenance | | | test.rs:143:15:143:20 | buffer | test.rs:143:14:143:20 | &buffer | provenance | | | test.rs:147:13:147:18 | mut f2 | test.rs:149:22:149:23 | f2 | provenance | | -| test.rs:147:22:147:80 | ... .open(...) [Ok] | test.rs:147:22:147:89 | ... .unwrap() | provenance | MaD:38 | +| test.rs:147:22:147:80 | ... .open(...) [Ok] | test.rs:147:22:147:89 | ... .unwrap() | provenance | MaD:36 | | test.rs:147:22:147:89 | ... .unwrap() | test.rs:147:13:147:18 | mut f2 | provenance | | | test.rs:147:67:147:70 | open | test.rs:147:22:147:80 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:149:22:149:23 | f2 | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:149:22:149:23 | f2 | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:149:30:149:40 | [post] &mut buffer [&ref] | test.rs:149:35:149:40 | [post] buffer | provenance | | | test.rs:149:35:149:40 | [post] buffer | test.rs:150:15:150:20 | buffer | provenance | | | test.rs:150:15:150:20 | buffer | test.rs:150:14:150:20 | &buffer | provenance | | | test.rs:154:13:154:18 | mut f3 | test.rs:156:22:156:23 | f3 | provenance | | -| test.rs:154:22:154:114 | ... .open(...) [Ok] | test.rs:154:22:154:123 | ... .unwrap() | provenance | MaD:38 | +| test.rs:154:22:154:114 | ... .open(...) [Ok] | test.rs:154:22:154:123 | ... .unwrap() | provenance | MaD:36 | | test.rs:154:22:154:123 | ... .unwrap() | test.rs:154:13:154:18 | mut f3 | provenance | | | test.rs:154:101:154:104 | open | test.rs:154:22:154:114 | ... .open(...) [Ok] | provenance | Src:MaD:6 | -| test.rs:156:22:156:23 | f3 | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | provenance | MaD:24 | +| test.rs:156:22:156:23 | f3 | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | provenance | MaD:22 | | test.rs:156:30:156:40 | [post] &mut buffer [&ref] | test.rs:156:35:156:40 | [post] buffer | provenance | | | test.rs:156:35:156:40 | [post] buffer | test.rs:157:15:157:20 | buffer | provenance | | | test.rs:157:15:157:20 | buffer | test.rs:157:14:157:20 | &buffer | provenance | | @@ -161,10 +151,10 @@ edges | test.rs:165:21:165:59 | ...::open(...) [Ok] | test.rs:165:21:165:60 | TryExpr | provenance | | | test.rs:165:21:165:60 | TryExpr | test.rs:165:13:165:17 | file2 | provenance | | | test.rs:166:13:166:22 | mut reader | test.rs:167:9:167:14 | reader | provenance | | -| test.rs:166:26:166:30 | file1 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:23 | +| test.rs:166:26:166:30 | file1 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:21 | | test.rs:166:26:166:43 | file1.chain(...) | test.rs:166:13:166:22 | mut reader | provenance | | -| test.rs:166:38:166:42 | file2 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:22 | -| test.rs:167:9:167:14 | reader | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:166:38:166:42 | file2 | test.rs:166:26:166:43 | file1.chain(...) | provenance | MaD:20 | +| test.rs:167:9:167:14 | reader | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | provenance | MaD:25 | | test.rs:167:31:167:41 | [post] &mut buffer [&ref] | test.rs:167:36:167:41 | [post] buffer | provenance | | | test.rs:167:36:167:41 | [post] buffer | test.rs:168:15:168:20 | buffer | provenance | | | test.rs:168:15:168:20 | buffer | test.rs:168:14:168:20 | &buffer | provenance | | @@ -173,9 +163,9 @@ edges | test.rs:173:21:173:51 | ...::open(...) [Ok] | test.rs:173:21:173:52 | TryExpr | provenance | | | test.rs:173:21:173:52 | TryExpr | test.rs:173:13:173:17 | file1 | provenance | | | test.rs:174:13:174:22 | mut reader | test.rs:175:9:175:14 | reader | provenance | | -| test.rs:174:26:174:30 | file1 | test.rs:174:26:174:40 | file1.take(...) | provenance | MaD:28 | +| test.rs:174:26:174:30 | file1 | test.rs:174:26:174:40 | file1.take(...) | provenance | MaD:26 | | test.rs:174:26:174:40 | file1.take(...) | test.rs:174:13:174:22 | mut reader | provenance | | -| test.rs:175:9:175:14 | reader | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | provenance | MaD:27 | +| test.rs:175:9:175:14 | reader | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | provenance | MaD:25 | | test.rs:175:31:175:41 | [post] &mut buffer [&ref] | test.rs:175:36:175:41 | [post] buffer | provenance | | | test.rs:175:36:175:41 | [post] buffer | test.rs:176:15:176:20 | buffer | provenance | | | test.rs:176:15:176:20 | buffer | test.rs:176:14:176:20 | &buffer | provenance | | @@ -192,43 +182,43 @@ edges | test.rs:185:20:185:52 | ...::open(...) [future, Ok] | test.rs:185:20:185:58 | await ... [Ok] | provenance | | | test.rs:185:20:185:58 | await ... [Ok] | test.rs:185:20:185:59 | TryExpr | provenance | | | test.rs:185:20:185:59 | TryExpr | test.rs:185:9:185:16 | mut file | provenance | | -| test.rs:189:22:189:25 | file | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | provenance | MaD:29 | +| test.rs:189:22:189:25 | file | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | provenance | MaD:27 | | test.rs:189:32:189:42 | [post] &mut buffer [&ref] | test.rs:189:37:189:42 | [post] buffer | provenance | | | test.rs:189:37:189:42 | [post] buffer | test.rs:190:15:190:20 | buffer | provenance | | | test.rs:190:15:190:20 | buffer | test.rs:190:14:190:20 | &buffer | provenance | | -| test.rs:195:22:195:25 | file | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | provenance | MaD:35 | +| test.rs:195:22:195:25 | file | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | provenance | MaD:33 | | test.rs:195:39:195:49 | [post] &mut buffer [&ref] | test.rs:195:44:195:49 | [post] buffer | provenance | | | test.rs:195:44:195:49 | [post] buffer | test.rs:196:15:196:20 | buffer | provenance | | | test.rs:196:15:196:20 | buffer | test.rs:196:14:196:20 | &buffer | provenance | | -| test.rs:201:22:201:25 | file | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | provenance | MaD:36 | +| test.rs:201:22:201:25 | file | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | provenance | MaD:34 | | test.rs:201:42:201:52 | [post] &mut buffer [&ref] | test.rs:201:47:201:52 | [post] buffer | provenance | | | test.rs:201:47:201:52 | [post] buffer | test.rs:202:15:202:20 | buffer | provenance | | | test.rs:202:15:202:20 | buffer | test.rs:202:14:202:20 | &buffer | provenance | | -| test.rs:207:9:207:12 | file | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | provenance | MaD:31 | +| test.rs:207:9:207:12 | file | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | provenance | MaD:29 | | test.rs:207:25:207:35 | [post] &mut buffer [&ref] | test.rs:207:30:207:35 | [post] buffer | provenance | | | test.rs:207:30:207:35 | [post] buffer | test.rs:208:15:208:20 | buffer | provenance | | | test.rs:208:15:208:20 | buffer | test.rs:208:14:208:20 | &buffer | provenance | | | test.rs:212:13:212:14 | v1 | test.rs:216:14:216:15 | v1 | provenance | | -| test.rs:212:18:212:21 | file | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | provenance | MaD:37 | +| test.rs:212:18:212:21 | file | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | provenance | MaD:35 | | test.rs:212:18:212:31 | file.read_u8() [future, Ok] | test.rs:212:18:212:37 | await ... [Ok] | provenance | | | test.rs:212:18:212:37 | await ... [Ok] | test.rs:212:18:212:38 | TryExpr | provenance | | | test.rs:212:18:212:38 | TryExpr | test.rs:212:13:212:14 | v1 | provenance | | | test.rs:213:13:213:14 | v2 | test.rs:217:14:217:15 | v2 | provenance | | -| test.rs:213:18:213:21 | file | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | provenance | MaD:33 | +| test.rs:213:18:213:21 | file | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | provenance | MaD:31 | | test.rs:213:18:213:32 | file.read_i16() [future, Ok] | test.rs:213:18:213:38 | await ... [Ok] | provenance | | | test.rs:213:18:213:38 | await ... [Ok] | test.rs:213:18:213:39 | TryExpr | provenance | | | test.rs:213:18:213:39 | TryExpr | test.rs:213:13:213:14 | v2 | provenance | | | test.rs:214:13:214:14 | v3 | test.rs:218:14:218:15 | v3 | provenance | | -| test.rs:214:18:214:21 | file | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | provenance | MaD:32 | +| test.rs:214:18:214:21 | file | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | provenance | MaD:30 | | test.rs:214:18:214:32 | file.read_f32() [future, Ok] | test.rs:214:18:214:38 | await ... [Ok] | provenance | | | test.rs:214:18:214:38 | await ... [Ok] | test.rs:214:18:214:39 | TryExpr | provenance | | | test.rs:214:18:214:39 | TryExpr | test.rs:214:13:214:14 | v3 | provenance | | | test.rs:215:13:215:14 | v4 | test.rs:219:14:219:15 | v4 | provenance | | -| test.rs:215:18:215:21 | file | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | provenance | MaD:34 | +| test.rs:215:18:215:21 | file | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | provenance | MaD:32 | | test.rs:215:18:215:35 | file.read_i64_le() [future, Ok] | test.rs:215:18:215:41 | await ... [Ok] | provenance | | | test.rs:215:18:215:41 | await ... [Ok] | test.rs:215:18:215:42 | TryExpr | provenance | | | test.rs:215:18:215:42 | TryExpr | test.rs:215:13:215:14 | v4 | provenance | | -| test.rs:224:9:224:12 | file | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | provenance | MaD:30 | +| test.rs:224:9:224:12 | file | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | provenance | MaD:28 | | test.rs:224:23:224:33 | [post] &mut buffer [&ref] | test.rs:224:28:224:33 | [post] buffer | provenance | | | test.rs:224:28:224:33 | [post] buffer | test.rs:225:15:225:20 | buffer | provenance | | | test.rs:225:15:225:20 | buffer | test.rs:225:14:225:20 | &buffer | provenance | | @@ -237,7 +227,7 @@ edges | test.rs:231:22:231:71 | await ... [Ok] | test.rs:231:22:231:72 | TryExpr | provenance | | | test.rs:231:22:231:72 | TryExpr | test.rs:231:13:231:18 | mut f1 | provenance | | | test.rs:231:52:231:55 | open | test.rs:231:22:231:65 | ... .open(...) [future, Ok] | provenance | Src:MaD:8 | -| test.rs:233:22:233:23 | f1 | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | provenance | MaD:29 | +| test.rs:233:22:233:23 | f1 | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | provenance | MaD:27 | | test.rs:233:30:233:40 | [post] &mut buffer [&ref] | test.rs:233:35:233:40 | [post] buffer | provenance | | | test.rs:233:35:233:40 | [post] buffer | test.rs:234:15:234:20 | buffer | provenance | | | test.rs:234:15:234:20 | buffer | test.rs:234:14:234:20 | &buffer | provenance | | @@ -246,7 +236,7 @@ edges | test.rs:262:20:262:56 | ...::open(...) [future, Ok] | test.rs:262:20:262:62 | await ... [Ok] | provenance | | | test.rs:262:20:262:62 | await ... [Ok] | test.rs:262:20:262:63 | TryExpr | provenance | | | test.rs:262:20:262:63 | TryExpr | test.rs:262:9:262:16 | mut file | provenance | | -| test.rs:266:22:266:25 | file | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:266:22:266:25 | file | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | provenance | MaD:17 | | test.rs:266:32:266:42 | [post] &mut buffer [&ref] | test.rs:266:37:266:42 | [post] buffer | provenance | | | test.rs:266:37:266:42 | [post] buffer | test.rs:267:15:267:20 | buffer | provenance | | | test.rs:267:15:267:20 | buffer | test.rs:267:14:267:20 | &buffer | provenance | | @@ -255,26 +245,23 @@ edges | test.rs:273:22:273:75 | await ... [Ok] | test.rs:273:22:273:76 | TryExpr | provenance | | | test.rs:273:22:273:76 | TryExpr | test.rs:273:13:273:18 | mut f1 | provenance | | | test.rs:273:56:273:59 | open | test.rs:273:22:273:69 | ... .open(...) [future, Ok] | provenance | Src:MaD:2 | -| test.rs:275:22:275:23 | f1 | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | provenance | MaD:19 | +| test.rs:275:22:275:23 | f1 | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | provenance | MaD:17 | | test.rs:275:30:275:40 | [post] &mut buffer [&ref] | test.rs:275:35:275:40 | [post] buffer | provenance | | | test.rs:275:35:275:40 | [post] buffer | test.rs:276:15:276:20 | buffer | provenance | | | test.rs:276:15:276:20 | buffer | test.rs:276:14:276:20 | &buffer | provenance | | nodes | test.rs:12:13:12:18 | buffer | semmle.label | buffer | | test.rs:12:31:12:43 | ...::read | semmle.label | ...::read | -| test.rs:12:31:12:43 | ...::read [Ok] | semmle.label | ...::read [Ok] | | test.rs:12:31:12:55 | ...::read(...) [Ok] | semmle.label | ...::read(...) [Ok] | | test.rs:12:31:12:56 | TryExpr | semmle.label | TryExpr | | test.rs:13:14:13:19 | buffer | semmle.label | buffer | | test.rs:17:13:17:18 | buffer | semmle.label | buffer | | test.rs:17:31:17:38 | ...::read | semmle.label | ...::read | -| test.rs:17:31:17:38 | ...::read [Ok] | semmle.label | ...::read [Ok] | | test.rs:17:31:17:50 | ...::read(...) [Ok] | semmle.label | ...::read(...) [Ok] | | test.rs:17:31:17:51 | TryExpr | semmle.label | TryExpr | | test.rs:18:14:18:19 | buffer | semmle.label | buffer | | test.rs:22:13:22:18 | buffer | semmle.label | buffer | | test.rs:22:22:22:39 | ...::read_to_string | semmle.label | ...::read_to_string | -| test.rs:22:22:22:39 | ...::read_to_string [Ok] | semmle.label | ...::read_to_string [Ok] | | test.rs:22:22:22:51 | ...::read_to_string(...) [Ok] | semmle.label | ...::read_to_string(...) [Ok] | | test.rs:22:22:22:52 | TryExpr | semmle.label | TryExpr | | test.rs:23:14:23:19 | buffer | semmle.label | buffer | @@ -319,11 +306,9 @@ nodes | test.rs:90:13:90:16 | path | semmle.label | path | | test.rs:90:20:90:31 | entry.path() | semmle.label | entry.path() | | test.rs:90:26:90:29 | path | semmle.label | path | -| test.rs:90:26:90:29 | path | semmle.label | path | | test.rs:91:13:91:21 | file_name | semmle.label | file_name | | test.rs:91:25:91:41 | entry.file_name() | semmle.label | entry.file_name() | | test.rs:91:31:91:39 | file_name | semmle.label | file_name | -| test.rs:91:31:91:39 | file_name | semmle.label | file_name | | test.rs:92:14:92:17 | path | semmle.label | path | | test.rs:93:14:93:22 | file_name | semmle.label | file_name | | test.rs:97:13:97:18 | target | semmle.label | target | @@ -515,8 +500,6 @@ testFailures | test.rs:80:14:80:19 | buffer | test.rs:79:31:79:45 | ...::read | test.rs:80:14:80:19 | buffer | $@ | test.rs:79:31:79:45 | ...::read | ...::read | | test.rs:85:14:85:19 | buffer | test.rs:84:22:84:46 | ...::read_to_string | test.rs:85:14:85:19 | buffer | $@ | test.rs:84:22:84:46 | ...::read_to_string | ...::read_to_string | | test.rs:92:14:92:17 | path | test.rs:90:26:90:29 | path | test.rs:92:14:92:17 | path | $@ | test.rs:90:26:90:29 | path | path | -| test.rs:92:14:92:17 | path | test.rs:90:26:90:29 | path | test.rs:92:14:92:17 | path | $@ | test.rs:90:26:90:29 | path | path | -| test.rs:93:14:93:22 | file_name | test.rs:91:31:91:39 | file_name | test.rs:93:14:93:22 | file_name | $@ | test.rs:91:31:91:39 | file_name | file_name | | test.rs:93:14:93:22 | file_name | test.rs:91:31:91:39 | file_name | test.rs:93:14:93:22 | file_name | $@ | test.rs:91:31:91:39 | file_name | file_name | | test.rs:98:14:98:19 | target | test.rs:97:22:97:41 | ...::read_link | test.rs:98:14:98:19 | target | $@ | test.rs:97:22:97:41 | ...::read_link | ...::read_link | | test.rs:112:14:112:20 | &buffer | test.rs:107:20:107:38 | ...::open | test.rs:112:14:112:20 | &buffer | $@ | test.rs:107:20:107:38 | ...::open | ...::open | diff --git a/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected index f7687e025d7..0fb17232a39 100644 --- a/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/file/TaintSources.expected @@ -1,8 +1,5 @@ | test.rs:12:31:12:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:12:31:12:43 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:17:31:17:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:17:31:17:38 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:22:22:22:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:22:22:22:39 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:26:18:26:29 | ...::read_dir | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:29:22:29:25 | path | Flow source 'FileSource' of type file (DEFAULT). | @@ -15,8 +12,6 @@ | test.rs:79:31:79:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:84:22:84:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:90:26:90:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:90:26:90:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:91:31:91:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:91:31:91:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:97:22:97:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:107:20:107:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected index ca5c386b720..8ca58acd1d0 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/net/CONSISTENCY/PathResolutionConsistency.expected @@ -1,9 +1,6 @@ -multipleCallTargets -| test.rs:59:62:59:77 | ...::from(...) | -| test.rs:66:58:66:73 | ...::from(...) | +multipleResolvedTargets | test.rs:389:30:389:67 | pinned.poll_read(...) | | test.rs:416:26:416:54 | pinned.poll_fill_buf(...) | | test.rs:423:27:423:71 | ... .poll_fill_buf(...) | | test.rs:447:30:447:67 | pinned.poll_read(...) | | test.rs:470:26:470:54 | pinned.poll_fill_buf(...) | -| test.rs:519:50:519:66 | ...::from(...) | diff --git a/rust/ql/test/library-tests/dataflow/sources/net/test.rs b/rust/ql/test/library-tests/dataflow/sources/net/test.rs index 254a27349d9..178f539dc6e 100644 --- a/rust/ql/test/library-tests/dataflow/sources/net/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/net/test.rs @@ -204,7 +204,7 @@ async fn test_std_tcpstream(case: i64) -> std::io::Result<()> { for line in reader.lines() { // $ MISSING: Alert[rust/summary/taint-sources] if let Ok(string) = line { println!("line = {}", string); - sink(string); // $ MISSING: hasTaintFlow + sink(string); // $ MISSING: hasTaintFlow=&sock_addr } } } diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected index 08edbe8c612..f1bdb2cddbd 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/CONSISTENCY/TypeInferenceConsistency.expected @@ -1,4 +1,4 @@ nonUniqueCertainType -| test.rs:139:30:139:39 | ...::get(...) | | -| test.rs:140:34:140:43 | ...::get(...) | | -| test.rs:141:30:141:39 | ...::get(...) | | +| test.rs:131:30:131:39 | ...::get(...) | | +| test.rs:132:34:132:43 | ...::get(...) | | +| test.rs:133:30:133:39 | ...::get(...) | | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected index 1b1e8c7fc7a..4c85f166699 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/InlineFlow.expected @@ -4,81 +4,75 @@ models | 3 | Source: <_ as warp::filter::Filter>::then; Argument[0].Parameter[0..7]; remote | | 4 | Source: ::to; Argument[0].Parameter[0..7]; remote | | 5 | Source: ::to; Argument[0].Parameter[0..7]; remote | -| 6 | Summary: ::into_inner; Argument[self]; ReturnValue.Field[0]; taint | -| 7 | Summary: ::into_inner; Argument[self]; ReturnValue.Field[1]; taint | -| 8 | Summary: ::into_inner; Argument[self]; ReturnValue.Field[2]; taint | -| 9 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | -| 10 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 11 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 6 | Source: ::get; Argument[0].Parameter[0..7]; remote | +| 7 | Source: ::on; Argument[1].Parameter[0..7]; remote | +| 8 | Source: axum::routing::method_routing::get; Argument[0].Parameter[0..7]; remote | +| 9 | Source: axum::routing::method_routing::post; Argument[0].Parameter[0..7]; remote | +| 10 | Source: axum::routing::method_routing::put; Argument[0].Parameter[0..7]; remote | +| 11 | Summary: ::into_inner; Argument[self]; ReturnValue; taint | +| 12 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | +| 13 | Summary: ::as_str; Argument[self]; ReturnValue; value | edges | test.rs:11:31:11:31 | a | test.rs:13:14:13:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:14:14:14:14 | a | provenance | | | test.rs:11:31:11:31 | a | test.rs:15:14:15:14 | a | provenance | | -| test.rs:13:14:13:14 | a | test.rs:13:14:13:23 | a.as_str() | provenance | MaD:11 | -| test.rs:14:14:14:14 | a | test.rs:14:14:14:25 | a.as_bytes() | provenance | MaD:10 | +| test.rs:13:14:13:14 | a | test.rs:13:14:13:23 | a.as_str() | provenance | MaD:13 | +| test.rs:14:14:14:14 | a | test.rs:14:14:14:25 | a.as_bytes() | provenance | MaD:12 | +| test.rs:22:14:22:19 | TuplePat | test.rs:24:14:24:14 | a | provenance | | +| test.rs:22:14:22:19 | TuplePat | test.rs:25:14:25:14 | b | provenance | | +| test.rs:48:14:48:30 | MyStruct {...} | test.rs:50:14:50:14 | a | provenance | | +| test.rs:48:14:48:30 | MyStruct {...} | test.rs:51:14:51:14 | b | provenance | | +| test.rs:58:14:58:15 | ms | test.rs:60:14:60:17 | ms.a | provenance | | +| test.rs:58:14:58:15 | ms | test.rs:61:14:61:17 | ms.b | provenance | | | test.rs:68:15:68:15 | a | test.rs:70:14:70:14 | a | provenance | | -| test.rs:98:9:98:31 | ...: ...::Path::<...> | test.rs:100:17:100:20 | path | provenance | | -| test.rs:100:13:100:13 | a | test.rs:101:14:101:14 | a | provenance | | -| test.rs:100:13:100:13 | a | test.rs:102:14:102:14 | a | provenance | | -| test.rs:100:13:100:13 | a | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:13:100:13 | a [tuple.0] | test.rs:101:14:101:14 | a [tuple.0] | provenance | | -| test.rs:100:13:100:13 | a [tuple.0] | test.rs:102:14:102:14 | a [tuple.0] | provenance | | -| test.rs:100:13:100:13 | a [tuple.0] | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:13:100:13 | a [tuple.1] | test.rs:101:14:101:14 | a [tuple.1] | provenance | | -| test.rs:100:13:100:13 | a [tuple.1] | test.rs:102:14:102:14 | a [tuple.1] | provenance | | -| test.rs:100:13:100:13 | a [tuple.1] | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:13:100:13 | a [tuple.2] | test.rs:101:14:101:14 | a [tuple.2] | provenance | | -| test.rs:100:13:100:13 | a [tuple.2] | test.rs:102:14:102:14 | a [tuple.2] | provenance | | -| test.rs:100:13:100:13 | a [tuple.2] | test.rs:103:14:103:14 | a | provenance | | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() | provenance | MaD:9 | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() [tuple.0] | provenance | MaD:6 | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() [tuple.1] | provenance | MaD:7 | -| test.rs:100:17:100:20 | path | test.rs:100:17:100:33 | path.into_inner() [tuple.2] | provenance | MaD:8 | -| test.rs:100:17:100:33 | path.into_inner() | test.rs:100:13:100:13 | a | provenance | | -| test.rs:100:17:100:33 | path.into_inner() [tuple.0] | test.rs:100:13:100:13 | a [tuple.0] | provenance | | -| test.rs:100:17:100:33 | path.into_inner() [tuple.1] | test.rs:100:13:100:13 | a [tuple.1] | provenance | | -| test.rs:100:17:100:33 | path.into_inner() [tuple.2] | test.rs:100:13:100:13 | a [tuple.2] | provenance | | -| test.rs:101:14:101:14 | a | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:101:14:101:14 | a [tuple.0] | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:101:14:101:14 | a [tuple.1] | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:101:14:101:14 | a [tuple.2] | test.rs:101:14:101:23 | a.as_str() | provenance | MaD:11 | -| test.rs:102:14:102:14 | a | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:102:14:102:14 | a [tuple.0] | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:102:14:102:14 | a [tuple.1] | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:102:14:102:14 | a [tuple.2] | test.rs:102:14:102:25 | a.as_bytes() | provenance | MaD:10 | -| test.rs:109:9:109:41 | ...: ...::Path::<...> | test.rs:111:22:111:25 | path | provenance | | -| test.rs:111:13:111:18 | TuplePat [tuple.0] | test.rs:111:14:111:14 | a | provenance | | -| test.rs:111:13:111:18 | TuplePat [tuple.1] | test.rs:111:17:111:17 | b | provenance | | -| test.rs:111:14:111:14 | a | test.rs:113:14:113:14 | a | provenance | | -| test.rs:111:17:111:17 | b | test.rs:114:14:114:14 | b | provenance | | -| test.rs:111:22:111:25 | path | test.rs:111:22:111:38 | path.into_inner() [tuple.0] | provenance | MaD:6 | -| test.rs:111:22:111:25 | path | test.rs:111:22:111:38 | path.into_inner() [tuple.1] | provenance | MaD:7 | -| test.rs:111:22:111:38 | path.into_inner() [tuple.0] | test.rs:111:13:111:18 | TuplePat [tuple.0] | provenance | | -| test.rs:111:22:111:38 | path.into_inner() [tuple.1] | test.rs:111:13:111:18 | TuplePat [tuple.1] | provenance | | -| test.rs:127:5:127:20 | to | test.rs:129:9:129:31 | ...: ...::Path::<...> | provenance | Src:MaD:4 | -| test.rs:129:9:129:31 | ...: ...::Path::<...> | test.rs:131:17:131:20 | path | provenance | | -| test.rs:131:13:131:13 | a | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:13:131:13 | a [tuple.0] | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:13:131:13 | a [tuple.1] | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:13:131:13 | a [tuple.2] | test.rs:132:14:132:14 | a | provenance | | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() | provenance | MaD:9 | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() [tuple.0] | provenance | MaD:6 | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() [tuple.1] | provenance | MaD:7 | -| test.rs:131:17:131:20 | path | test.rs:131:17:131:33 | path.into_inner() [tuple.2] | provenance | MaD:8 | -| test.rs:131:17:131:33 | path.into_inner() | test.rs:131:13:131:13 | a | provenance | | -| test.rs:131:17:131:33 | path.into_inner() [tuple.0] | test.rs:131:13:131:13 | a [tuple.0] | provenance | | -| test.rs:131:17:131:33 | path.into_inner() [tuple.1] | test.rs:131:13:131:13 | a [tuple.1] | provenance | | -| test.rs:131:17:131:33 | path.into_inner() [tuple.2] | test.rs:131:13:131:13 | a [tuple.2] | provenance | | -| test.rs:139:41:139:42 | to | test.rs:98:9:98:31 | ...: ...::Path::<...> | provenance | Src:MaD:5 | -| test.rs:140:45:140:46 | to | test.rs:109:9:109:41 | ...: ...::Path::<...> | provenance | Src:MaD:5 | -| test.rs:242:33:242:35 | map | test.rs:242:38:242:46 | ...: String | provenance | Src:MaD:2 | -| test.rs:242:38:242:46 | ...: String | test.rs:244:18:244:18 | a | provenance | | -| test.rs:250:46:250:49 | then | test.rs:251:25:251:33 | ...: String | provenance | Src:MaD:3 | -| test.rs:251:25:251:33 | ...: String | test.rs:252:22:252:22 | a | provenance | | -| test.rs:259:50:259:57 | and_then | test.rs:260:26:260:32 | ...: u64 | provenance | Src:MaD:1 | -| test.rs:260:26:260:32 | ...: u64 | test.rs:263:22:263:23 | id | provenance | | -| test.rs:272:75:272:77 | map | test.rs:273:15:273:23 | ...: String | provenance | Src:MaD:2 | -| test.rs:273:15:273:23 | ...: String | test.rs:275:22:275:22 | a | provenance | | +| test.rs:97:33:97:55 | ...: ...::Path::<...> | test.rs:98:17:98:20 | path | provenance | | +| test.rs:98:13:98:13 | a | test.rs:99:14:99:14 | a | provenance | | +| test.rs:98:13:98:13 | a | test.rs:100:14:100:14 | a | provenance | | +| test.rs:98:13:98:13 | a | test.rs:101:14:101:14 | a | provenance | | +| test.rs:98:17:98:20 | path | test.rs:98:17:98:33 | path.into_inner() | provenance | MaD:11 | +| test.rs:98:17:98:33 | path.into_inner() | test.rs:98:13:98:13 | a | provenance | | +| test.rs:99:14:99:14 | a | test.rs:99:14:99:23 | a.as_str() | provenance | MaD:13 | +| test.rs:100:14:100:14 | a | test.rs:100:14:100:25 | a.as_bytes() | provenance | MaD:12 | +| test.rs:106:33:106:65 | ...: ...::Path::<...> | test.rs:107:22:107:25 | path | provenance | | +| test.rs:107:13:107:18 | TuplePat | test.rs:109:14:109:14 | a | provenance | | +| test.rs:107:13:107:18 | TuplePat | test.rs:110:14:110:14 | b | provenance | | +| test.rs:107:22:107:25 | path | test.rs:107:22:107:38 | path.into_inner() | provenance | MaD:11 | +| test.rs:107:22:107:38 | path.into_inner() | test.rs:107:13:107:18 | TuplePat | provenance | | +| test.rs:115:33:115:65 | ...: ...::Query::<...> | test.rs:116:14:116:14 | a | provenance | | +| test.rs:121:5:121:20 | to | test.rs:122:33:122:55 | ...: ...::Path::<...> | provenance | Src:MaD:4 | +| test.rs:122:33:122:55 | ...: ...::Path::<...> | test.rs:123:17:123:20 | path | provenance | | +| test.rs:123:13:123:13 | a | test.rs:124:14:124:14 | a | provenance | | +| test.rs:123:17:123:20 | path | test.rs:123:17:123:33 | path.into_inner() | provenance | MaD:11 | +| test.rs:123:17:123:33 | path.into_inner() | test.rs:123:13:123:13 | a | provenance | | +| test.rs:131:41:131:42 | to | test.rs:97:33:97:55 | ...: ...::Path::<...> | provenance | Src:MaD:5 | +| test.rs:132:45:132:46 | to | test.rs:106:33:106:65 | ...: ...::Path::<...> | provenance | Src:MaD:5 | +| test.rs:133:41:133:42 | to | test.rs:115:33:115:65 | ...: ...::Query::<...> | provenance | Src:MaD:5 | +| test.rs:147:32:147:52 | ...: Path::<...> | test.rs:148:14:148:14 | a | provenance | | +| test.rs:147:32:147:52 | ...: Path::<...> | test.rs:149:14:149:14 | a | provenance | | +| test.rs:147:32:147:52 | ...: Path::<...> | test.rs:150:14:150:14 | a | provenance | | +| test.rs:148:14:148:14 | a | test.rs:148:14:148:23 | a.as_str() | provenance | MaD:13 | +| test.rs:149:14:149:14 | a | test.rs:149:14:149:25 | a.as_bytes() | provenance | MaD:12 | +| test.rs:155:32:155:67 | ...: Path::<...> | test.rs:156:14:156:14 | a | provenance | | +| test.rs:155:32:155:67 | ...: Path::<...> | test.rs:157:14:157:14 | b | provenance | | +| test.rs:162:32:162:76 | ...: Query::<...> | test.rs:164:18:164:20 | key | provenance | | +| test.rs:162:32:162:76 | ...: Query::<...> | test.rs:165:18:165:22 | value | provenance | | +| test.rs:179:32:179:69 | ...: Json::<...> | test.rs:181:14:181:20 | payload | provenance | | +| test.rs:186:32:186:43 | ...: String | test.rs:187:14:187:17 | body | provenance | | +| test.rs:192:32:192:43 | ...: String | test.rs:193:14:193:17 | body | provenance | | +| test.rs:200:30:200:32 | get | test.rs:147:32:147:52 | ...: Path::<...> | provenance | Src:MaD:8 | +| test.rs:201:34:201:37 | post | test.rs:155:32:155:67 | ...: Path::<...> | provenance | Src:MaD:9 | +| test.rs:202:29:202:31 | put | test.rs:162:32:162:76 | ...: Query::<...> | provenance | Src:MaD:10 | +| test.rs:205:40:205:41 | on | test.rs:179:32:179:69 | ...: Json::<...> | provenance | Src:MaD:7 | +| test.rs:207:29:207:31 | get | test.rs:186:32:186:43 | ...: String | provenance | Src:MaD:8 | +| test.rs:207:52:207:54 | get | test.rs:192:32:192:43 | ...: String | provenance | Src:MaD:6 | +| test.rs:222:33:222:35 | map | test.rs:222:38:222:46 | ...: String | provenance | Src:MaD:2 | +| test.rs:222:38:222:46 | ...: String | test.rs:224:18:224:18 | a | provenance | | +| test.rs:230:46:230:49 | then | test.rs:231:25:231:33 | ...: String | provenance | Src:MaD:3 | +| test.rs:231:25:231:33 | ...: String | test.rs:232:22:232:22 | a | provenance | | +| test.rs:239:50:239:57 | and_then | test.rs:240:26:240:32 | ...: u64 | provenance | Src:MaD:1 | +| test.rs:240:26:240:32 | ...: u64 | test.rs:243:22:243:23 | id | provenance | | +| test.rs:252:75:252:77 | map | test.rs:253:15:253:23 | ...: String | provenance | Src:MaD:2 | +| test.rs:253:15:253:23 | ...: String | test.rs:255:22:255:22 | a | provenance | | nodes | test.rs:11:31:11:31 | a | semmle.label | a | | test.rs:13:14:13:14 | a | semmle.label | a | @@ -86,79 +80,110 @@ nodes | test.rs:14:14:14:14 | a | semmle.label | a | | test.rs:14:14:14:25 | a.as_bytes() | semmle.label | a.as_bytes() | | test.rs:15:14:15:14 | a | semmle.label | a | +| test.rs:22:14:22:19 | TuplePat | semmle.label | TuplePat | +| test.rs:24:14:24:14 | a | semmle.label | a | +| test.rs:25:14:25:14 | b | semmle.label | b | +| test.rs:48:14:48:30 | MyStruct {...} | semmle.label | MyStruct {...} | +| test.rs:50:14:50:14 | a | semmle.label | a | +| test.rs:51:14:51:14 | b | semmle.label | b | +| test.rs:58:14:58:15 | ms | semmle.label | ms | +| test.rs:60:14:60:17 | ms.a | semmle.label | ms.a | +| test.rs:61:14:61:17 | ms.b | semmle.label | ms.b | | test.rs:68:15:68:15 | a | semmle.label | a | | test.rs:70:14:70:14 | a | semmle.label | a | -| test.rs:98:9:98:31 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:100:13:100:13 | a | semmle.label | a | -| test.rs:100:13:100:13 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:100:13:100:13 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:100:13:100:13 | a [tuple.2] | semmle.label | a [tuple.2] | -| test.rs:100:17:100:20 | path | semmle.label | path | -| test.rs:100:17:100:33 | path.into_inner() | semmle.label | path.into_inner() | -| test.rs:100:17:100:33 | path.into_inner() [tuple.0] | semmle.label | path.into_inner() [tuple.0] | -| test.rs:100:17:100:33 | path.into_inner() [tuple.1] | semmle.label | path.into_inner() [tuple.1] | -| test.rs:100:17:100:33 | path.into_inner() [tuple.2] | semmle.label | path.into_inner() [tuple.2] | +| test.rs:97:33:97:55 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | +| test.rs:98:13:98:13 | a | semmle.label | a | +| test.rs:98:17:98:20 | path | semmle.label | path | +| test.rs:98:17:98:33 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:99:14:99:14 | a | semmle.label | a | +| test.rs:99:14:99:23 | a.as_str() | semmle.label | a.as_str() | +| test.rs:100:14:100:14 | a | semmle.label | a | +| test.rs:100:14:100:25 | a.as_bytes() | semmle.label | a.as_bytes() | | test.rs:101:14:101:14 | a | semmle.label | a | -| test.rs:101:14:101:14 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:101:14:101:14 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:101:14:101:14 | a [tuple.2] | semmle.label | a [tuple.2] | -| test.rs:101:14:101:23 | a.as_str() | semmle.label | a.as_str() | -| test.rs:102:14:102:14 | a | semmle.label | a | -| test.rs:102:14:102:14 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:102:14:102:14 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:102:14:102:14 | a [tuple.2] | semmle.label | a [tuple.2] | -| test.rs:102:14:102:25 | a.as_bytes() | semmle.label | a.as_bytes() | -| test.rs:103:14:103:14 | a | semmle.label | a | -| test.rs:109:9:109:41 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:111:13:111:18 | TuplePat [tuple.0] | semmle.label | TuplePat [tuple.0] | -| test.rs:111:13:111:18 | TuplePat [tuple.1] | semmle.label | TuplePat [tuple.1] | -| test.rs:111:14:111:14 | a | semmle.label | a | -| test.rs:111:17:111:17 | b | semmle.label | b | -| test.rs:111:22:111:25 | path | semmle.label | path | -| test.rs:111:22:111:38 | path.into_inner() [tuple.0] | semmle.label | path.into_inner() [tuple.0] | -| test.rs:111:22:111:38 | path.into_inner() [tuple.1] | semmle.label | path.into_inner() [tuple.1] | -| test.rs:113:14:113:14 | a | semmle.label | a | -| test.rs:114:14:114:14 | b | semmle.label | b | -| test.rs:127:5:127:20 | to | semmle.label | to | -| test.rs:129:9:129:31 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | -| test.rs:131:13:131:13 | a | semmle.label | a | -| test.rs:131:13:131:13 | a [tuple.0] | semmle.label | a [tuple.0] | -| test.rs:131:13:131:13 | a [tuple.1] | semmle.label | a [tuple.1] | -| test.rs:131:13:131:13 | a [tuple.2] | semmle.label | a [tuple.2] | -| test.rs:131:17:131:20 | path | semmle.label | path | -| test.rs:131:17:131:33 | path.into_inner() | semmle.label | path.into_inner() | -| test.rs:131:17:131:33 | path.into_inner() [tuple.0] | semmle.label | path.into_inner() [tuple.0] | -| test.rs:131:17:131:33 | path.into_inner() [tuple.1] | semmle.label | path.into_inner() [tuple.1] | -| test.rs:131:17:131:33 | path.into_inner() [tuple.2] | semmle.label | path.into_inner() [tuple.2] | -| test.rs:132:14:132:14 | a | semmle.label | a | -| test.rs:139:41:139:42 | to | semmle.label | to | -| test.rs:140:45:140:46 | to | semmle.label | to | -| test.rs:242:33:242:35 | map | semmle.label | map | -| test.rs:242:38:242:46 | ...: String | semmle.label | ...: String | -| test.rs:244:18:244:18 | a | semmle.label | a | -| test.rs:250:46:250:49 | then | semmle.label | then | -| test.rs:251:25:251:33 | ...: String | semmle.label | ...: String | -| test.rs:252:22:252:22 | a | semmle.label | a | -| test.rs:259:50:259:57 | and_then | semmle.label | and_then | -| test.rs:260:26:260:32 | ...: u64 | semmle.label | ...: u64 | -| test.rs:263:22:263:23 | id | semmle.label | id | -| test.rs:272:75:272:77 | map | semmle.label | map | -| test.rs:273:15:273:23 | ...: String | semmle.label | ...: String | -| test.rs:275:22:275:22 | a | semmle.label | a | +| test.rs:106:33:106:65 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | +| test.rs:107:13:107:18 | TuplePat | semmle.label | TuplePat | +| test.rs:107:22:107:25 | path | semmle.label | path | +| test.rs:107:22:107:38 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:109:14:109:14 | a | semmle.label | a | +| test.rs:110:14:110:14 | b | semmle.label | b | +| test.rs:115:33:115:65 | ...: ...::Query::<...> | semmle.label | ...: ...::Query::<...> | +| test.rs:116:14:116:14 | a | semmle.label | a | +| test.rs:121:5:121:20 | to | semmle.label | to | +| test.rs:122:33:122:55 | ...: ...::Path::<...> | semmle.label | ...: ...::Path::<...> | +| test.rs:123:13:123:13 | a | semmle.label | a | +| test.rs:123:17:123:20 | path | semmle.label | path | +| test.rs:123:17:123:33 | path.into_inner() | semmle.label | path.into_inner() | +| test.rs:124:14:124:14 | a | semmle.label | a | +| test.rs:131:41:131:42 | to | semmle.label | to | +| test.rs:132:45:132:46 | to | semmle.label | to | +| test.rs:133:41:133:42 | to | semmle.label | to | +| test.rs:147:32:147:52 | ...: Path::<...> | semmle.label | ...: Path::<...> | +| test.rs:148:14:148:14 | a | semmle.label | a | +| test.rs:148:14:148:23 | a.as_str() | semmle.label | a.as_str() | +| test.rs:149:14:149:14 | a | semmle.label | a | +| test.rs:149:14:149:25 | a.as_bytes() | semmle.label | a.as_bytes() | +| test.rs:150:14:150:14 | a | semmle.label | a | +| test.rs:155:32:155:67 | ...: Path::<...> | semmle.label | ...: Path::<...> | +| test.rs:156:14:156:14 | a | semmle.label | a | +| test.rs:157:14:157:14 | b | semmle.label | b | +| test.rs:162:32:162:76 | ...: Query::<...> | semmle.label | ...: Query::<...> | +| test.rs:164:18:164:20 | key | semmle.label | key | +| test.rs:165:18:165:22 | value | semmle.label | value | +| test.rs:179:32:179:69 | ...: Json::<...> | semmle.label | ...: Json::<...> | +| test.rs:181:14:181:20 | payload | semmle.label | payload | +| test.rs:186:32:186:43 | ...: String | semmle.label | ...: String | +| test.rs:187:14:187:17 | body | semmle.label | body | +| test.rs:192:32:192:43 | ...: String | semmle.label | ...: String | +| test.rs:193:14:193:17 | body | semmle.label | body | +| test.rs:200:30:200:32 | get | semmle.label | get | +| test.rs:201:34:201:37 | post | semmle.label | post | +| test.rs:202:29:202:31 | put | semmle.label | put | +| test.rs:205:40:205:41 | on | semmle.label | on | +| test.rs:207:29:207:31 | get | semmle.label | get | +| test.rs:207:52:207:54 | get | semmle.label | get | +| test.rs:222:33:222:35 | map | semmle.label | map | +| test.rs:222:38:222:46 | ...: String | semmle.label | ...: String | +| test.rs:224:18:224:18 | a | semmle.label | a | +| test.rs:230:46:230:49 | then | semmle.label | then | +| test.rs:231:25:231:33 | ...: String | semmle.label | ...: String | +| test.rs:232:22:232:22 | a | semmle.label | a | +| test.rs:239:50:239:57 | and_then | semmle.label | and_then | +| test.rs:240:26:240:32 | ...: u64 | semmle.label | ...: u64 | +| test.rs:243:22:243:23 | id | semmle.label | id | +| test.rs:252:75:252:77 | map | semmle.label | map | +| test.rs:253:15:253:23 | ...: String | semmle.label | ...: String | +| test.rs:255:22:255:22 | a | semmle.label | a | subpaths testFailures #select | test.rs:13:14:13:23 | a.as_str() | test.rs:11:31:11:31 | a | test.rs:13:14:13:23 | a.as_str() | $@ | test.rs:11:31:11:31 | a | a | | test.rs:14:14:14:25 | a.as_bytes() | test.rs:11:31:11:31 | a | test.rs:14:14:14:25 | a.as_bytes() | $@ | test.rs:11:31:11:31 | a | a | | test.rs:15:14:15:14 | a | test.rs:11:31:11:31 | a | test.rs:15:14:15:14 | a | $@ | test.rs:11:31:11:31 | a | a | +| test.rs:24:14:24:14 | a | test.rs:22:14:22:19 | TuplePat | test.rs:24:14:24:14 | a | $@ | test.rs:22:14:22:19 | TuplePat | TuplePat | +| test.rs:25:14:25:14 | b | test.rs:22:14:22:19 | TuplePat | test.rs:25:14:25:14 | b | $@ | test.rs:22:14:22:19 | TuplePat | TuplePat | +| test.rs:50:14:50:14 | a | test.rs:48:14:48:30 | MyStruct {...} | test.rs:50:14:50:14 | a | $@ | test.rs:48:14:48:30 | MyStruct {...} | MyStruct {...} | +| test.rs:51:14:51:14 | b | test.rs:48:14:48:30 | MyStruct {...} | test.rs:51:14:51:14 | b | $@ | test.rs:48:14:48:30 | MyStruct {...} | MyStruct {...} | +| test.rs:60:14:60:17 | ms.a | test.rs:58:14:58:15 | ms | test.rs:60:14:60:17 | ms.a | $@ | test.rs:58:14:58:15 | ms | ms | +| test.rs:61:14:61:17 | ms.b | test.rs:58:14:58:15 | ms | test.rs:61:14:61:17 | ms.b | $@ | test.rs:58:14:58:15 | ms | ms | | test.rs:70:14:70:14 | a | test.rs:68:15:68:15 | a | test.rs:70:14:70:14 | a | $@ | test.rs:68:15:68:15 | a | a | -| test.rs:101:14:101:23 | a.as_str() | test.rs:139:41:139:42 | to | test.rs:101:14:101:23 | a.as_str() | $@ | test.rs:139:41:139:42 | to | to | -| test.rs:102:14:102:25 | a.as_bytes() | test.rs:139:41:139:42 | to | test.rs:102:14:102:25 | a.as_bytes() | $@ | test.rs:139:41:139:42 | to | to | -| test.rs:103:14:103:14 | a | test.rs:139:41:139:42 | to | test.rs:103:14:103:14 | a | $@ | test.rs:139:41:139:42 | to | to | -| test.rs:113:14:113:14 | a | test.rs:140:45:140:46 | to | test.rs:113:14:113:14 | a | $@ | test.rs:140:45:140:46 | to | to | -| test.rs:114:14:114:14 | b | test.rs:140:45:140:46 | to | test.rs:114:14:114:14 | b | $@ | test.rs:140:45:140:46 | to | to | -| test.rs:132:14:132:14 | a | test.rs:127:5:127:20 | to | test.rs:132:14:132:14 | a | $@ | test.rs:127:5:127:20 | to | to | -| test.rs:244:18:244:18 | a | test.rs:242:33:242:35 | map | test.rs:244:18:244:18 | a | $@ | test.rs:242:33:242:35 | map | map | -| test.rs:252:22:252:22 | a | test.rs:250:46:250:49 | then | test.rs:252:22:252:22 | a | $@ | test.rs:250:46:250:49 | then | then | -| test.rs:263:22:263:23 | id | test.rs:259:50:259:57 | and_then | test.rs:263:22:263:23 | id | $@ | test.rs:259:50:259:57 | and_then | and_then | -| test.rs:275:22:275:22 | a | test.rs:272:75:272:77 | map | test.rs:275:22:275:22 | a | $@ | test.rs:272:75:272:77 | map | map | +| test.rs:99:14:99:23 | a.as_str() | test.rs:131:41:131:42 | to | test.rs:99:14:99:23 | a.as_str() | $@ | test.rs:131:41:131:42 | to | to | +| test.rs:100:14:100:25 | a.as_bytes() | test.rs:131:41:131:42 | to | test.rs:100:14:100:25 | a.as_bytes() | $@ | test.rs:131:41:131:42 | to | to | +| test.rs:101:14:101:14 | a | test.rs:131:41:131:42 | to | test.rs:101:14:101:14 | a | $@ | test.rs:131:41:131:42 | to | to | +| test.rs:109:14:109:14 | a | test.rs:132:45:132:46 | to | test.rs:109:14:109:14 | a | $@ | test.rs:132:45:132:46 | to | to | +| test.rs:110:14:110:14 | b | test.rs:132:45:132:46 | to | test.rs:110:14:110:14 | b | $@ | test.rs:132:45:132:46 | to | to | +| test.rs:116:14:116:14 | a | test.rs:133:41:133:42 | to | test.rs:116:14:116:14 | a | $@ | test.rs:133:41:133:42 | to | to | +| test.rs:124:14:124:14 | a | test.rs:121:5:121:20 | to | test.rs:124:14:124:14 | a | $@ | test.rs:121:5:121:20 | to | to | +| test.rs:148:14:148:23 | a.as_str() | test.rs:200:30:200:32 | get | test.rs:148:14:148:23 | a.as_str() | $@ | test.rs:200:30:200:32 | get | get | +| test.rs:149:14:149:25 | a.as_bytes() | test.rs:200:30:200:32 | get | test.rs:149:14:149:25 | a.as_bytes() | $@ | test.rs:200:30:200:32 | get | get | +| test.rs:150:14:150:14 | a | test.rs:200:30:200:32 | get | test.rs:150:14:150:14 | a | $@ | test.rs:200:30:200:32 | get | get | +| test.rs:156:14:156:14 | a | test.rs:201:34:201:37 | post | test.rs:156:14:156:14 | a | $@ | test.rs:201:34:201:37 | post | post | +| test.rs:157:14:157:14 | b | test.rs:201:34:201:37 | post | test.rs:157:14:157:14 | b | $@ | test.rs:201:34:201:37 | post | post | +| test.rs:164:18:164:20 | key | test.rs:202:29:202:31 | put | test.rs:164:18:164:20 | key | $@ | test.rs:202:29:202:31 | put | put | +| test.rs:165:18:165:22 | value | test.rs:202:29:202:31 | put | test.rs:165:18:165:22 | value | $@ | test.rs:202:29:202:31 | put | put | +| test.rs:181:14:181:20 | payload | test.rs:205:40:205:41 | on | test.rs:181:14:181:20 | payload | $@ | test.rs:205:40:205:41 | on | on | +| test.rs:187:14:187:17 | body | test.rs:207:29:207:31 | get | test.rs:187:14:187:17 | body | $@ | test.rs:207:29:207:31 | get | get | +| test.rs:193:14:193:17 | body | test.rs:207:52:207:54 | get | test.rs:193:14:193:17 | body | $@ | test.rs:207:52:207:54 | get | get | +| test.rs:224:18:224:18 | a | test.rs:222:33:222:35 | map | test.rs:224:18:224:18 | a | $@ | test.rs:222:33:222:35 | map | map | +| test.rs:232:22:232:22 | a | test.rs:230:46:230:49 | then | test.rs:232:22:232:22 | a | $@ | test.rs:230:46:230:49 | then | then | +| test.rs:243:22:243:23 | id | test.rs:239:50:239:57 | and_then | test.rs:243:22:243:23 | id | $@ | test.rs:239:50:239:57 | and_then | and_then | +| test.rs:255:22:255:22 | a | test.rs:252:75:252:77 | map | test.rs:255:22:255:22 | a | $@ | test.rs:252:75:252:77 | map | map | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected index 20a20ce3f9b..146406e7192 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/TaintSources.expected @@ -3,67 +3,123 @@ | test.rs:48:14:48:30 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:127:5:127:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:139:41:139:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:140:45:140:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:141:41:141:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:242:33:242:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:250:46:250:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:259:50:259:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | -| test.rs:272:75:272:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:121:5:121:20 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:131:41:131:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:132:45:132:46 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:133:41:133:42 | to | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:200:30:200:32 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:201:34:201:37 | post | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:202:29:202:31 | put | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:17:205:19 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:205:40:205:41 | on | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:29:207:31 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:207:52:207:54 | get | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:222:33:222:35 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:230:46:230:49 | then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:239:50:239:57 | and_then | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | +| test.rs:252:75:252:77 | map | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs index 3bcea0dee4e..c6c487fed28 100644 --- a/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs +++ b/rust/ql/test/library-tests/dataflow/sources/web_frameworks/test.rs @@ -21,8 +21,8 @@ mod poem_test { fn my_poem_handler_2( Path((a, b)): Path<(String, String)>, // $ Alert[rust/summary/taint-sources] ) -> String { - sink(a); // $ MISSING: hasTaintFlow - sink(b); // $ MISSING: hasTaintFlow + sink(a); // $ hasTaintFlow + sink(b); // $ hasTaintFlow "".to_string() } @@ -47,8 +47,8 @@ mod poem_test { fn my_poem_handler_4( Path(MyStruct { a, b }): Path, // $ Alert[rust/summary/taint-sources] ) -> String { - sink(a); // $ MISSING: hasTaintFlow - sink(b); // $ MISSING: hasTaintFlow + sink(a); // $ hasTaintFlow + sink(b); // $ hasTaintFlow "".to_string() } @@ -57,8 +57,8 @@ mod poem_test { fn my_poem_handler_5( Path(ms): Path, // $ Alert[rust/summary/taint-sources] ) -> String { - sink(ms.a); // $ MISSING: hasTaintFlow - sink(ms.b); // $ MISSING: hasTaintFlow + sink(ms.a); // $ hasTaintFlow + sink(ms.b); // $ hasTaintFlow "".to_string() } @@ -94,9 +94,7 @@ mod actix_test { use super::sink; use actix_web::{get, web, App}; - async fn my_actix_handler_1( - path: web::Path, - ) -> String { + async fn my_actix_handler_1(path: web::Path) -> String { let a = path.into_inner(); sink(a.as_str()); // $ hasTaintFlow=my_actix_handler_1 sink(a.as_bytes()); // $ hasTaintFlow=my_actix_handler_1 @@ -105,9 +103,7 @@ mod actix_test { "".to_string() } - async fn my_actix_handler_2( - path: web::Path<(String, String)>, - ) -> String { + async fn my_actix_handler_2(path: web::Path<(String, String)>) -> String { let (a, b) = path.into_inner(); sink(a); // $ hasTaintFlow=my_actix_handler_2 @@ -116,18 +112,14 @@ mod actix_test { "".to_string() } - async fn my_actix_handler_3( - web::Query(a): web::Query, - ) -> String { - sink(a); // $ MISSING: hasTaintFlow + async fn my_actix_handler_3(web::Query(a): web::Query) -> String { + sink(a); // $ hasTaintFlow=my_actix_handler_3 "".to_string() } #[get("/4/{a}")] // $ Alert[rust/summary/taint-sources] - async fn my_actix_handler_4( - path: web::Path, - ) -> String { + async fn my_actix_handler_4(path: web::Path) -> String { let a = path.into_inner(); sink(a); // $ hasTaintFlow=my_actix_handler_4 @@ -148,43 +140,35 @@ mod actix_test { mod axum_test { use super::sink; use axum::extract::{Json, Path, Query, Request}; - use axum::routing::get; + use axum::routing::{get, post, put, MethodFilter}; use axum::Router; use std::collections::HashMap; - async fn my_axum_handler_1( - Path(a): Path, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(a.as_str()); // $ MISSING: hasTaintFlow - sink(a.as_bytes()); // $ MISSING: hasTaintFlow - sink(a); // $ MISSING: hasTaintFlow + async fn my_axum_handler_1(Path(a): Path) -> &'static str { + sink(a.as_str()); // $ hasTaintFlow=my_axum_handler_1 + sink(a.as_bytes()); // $ hasTaintFlow=my_axum_handler_1 + sink(a); // $ hasTaintFlow=my_axum_handler_1 "" } - async fn my_axum_handler_2( - Path((a, b)): Path<(String, String)>, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(a); // $ MISSING: hasTaintFlow - sink(b); // $ MISSING: hasTaintFlow + async fn my_axum_handler_2(Path((a, b)): Path<(String, String)>) -> &'static str { + sink(a); // $ hasTaintFlow=my_axum_handler_2 + sink(b); // $ hasTaintFlow=my_axum_handler_2 "" } - async fn my_axum_handler_3( - Query(params): Query>, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { + async fn my_axum_handler_3(Query(params): Query>) -> &'static str { for (key, value) in params { - sink(key); // $ MISSING: hasTaintFlow - sink(value); // $ MISSING: hasTaintFlow + sink(key); // $ hasTaintFlow=my_axum_handler_3 + sink(value); // $ hasTaintFlow=my_axum_handler_3 } "" } - async fn my_axum_handler_4( - request: Request, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { + async fn my_axum_handler_4(request: Request) -> &'static str { sink(request.body()); // $ MISSING: hasTaintFlow request.headers().get("header").unwrap(); // $ MISSING: hasTaintFlow sink(request.into_body()); // $ MISSING: hasTaintFlow @@ -192,39 +176,35 @@ mod axum_test { "" } - async fn my_axum_handler_5( - Json(payload): Json, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { + async fn my_axum_handler_5(Json(payload): Json) -> &'static str { sink(payload.as_str()); // $ MISSING: hasTaintFlow - sink(payload); // $ MISSING: hasTaintFlow + sink(payload); // $ hasTaintFlow=...::DELETE "" } - async fn my_axum_handler_6( - body: String, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(body); // $ MISSING: hasTaintFlow + async fn my_axum_handler_6(body: String) -> &'static str { + sink(body); // $ hasTaintFlow=my_axum_handler_6 "" } - async fn my_axum_handler_7( - body: String, // $ MISSING: Alert[rust/summary/taint-sources] - ) -> &'static str { - sink(body); // $ MISSING: hasTaintFlow + async fn my_axum_handler_7(body: String) -> &'static str { + sink(body); // $ hasTaintFlow=my_axum_handler_7 "" } async fn test_axum() { let app = Router::<()>::new() - .route("/1/{a}", get(my_axum_handler_1)) - .route("/2/{a}/{b}", get(my_axum_handler_2)) - .route("/3/:a", get(my_axum_handler_3)) - .route("/4/:a", get(my_axum_handler_4)) - .route("/5/:a", get(my_axum_handler_5)) - .route("/67/:a", get(my_axum_handler_6).get(my_axum_handler_7)); + .route("/1/{a}", get(my_axum_handler_1)) // $ Alert[rust/summary/taint-sources]) + .route("/2/{a}/{b}", post(my_axum_handler_2)) // $ Alert[rust/summary/taint-sources]) + .route("/3/:a", put(my_axum_handler_3)) // $ Alert[rust/summary/taint-sources]) + .route( + "/4/:a", + get(my_axum_handler_4).on(MethodFilter::DELETE, my_axum_handler_5), // $ Alert[rust/summary/taint-sources]) + ) + .route("/5/:a", get(my_axum_handler_6).get(my_axum_handler_7)); // $ Alert[rust/summary/taint-sources]) // ... } diff --git a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index ccda75006f9..00000000000 --- a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleCallTargets -| main.rs:52:14:52:29 | ...::from(...) | diff --git a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected index cc34dfd2b7d..23ac5e722d5 100644 --- a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected @@ -1,4 +1,4 @@ -multipleCallTargets +multipleResolvedTargets | main.rs:126:9:126:11 | f(...) | | main.rs:366:9:368:16 | ...::f(...) | | main.rs:369:9:371:16 | ...::f(...) | diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 16db4f5c090..28242d86a7b 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,13 +1,2 @@ -multipleCallTargets -| dereference.rs:69:15:69:24 | e1.deref() | -| dereference.rs:182:17:182:26 | ... .foo() | -| dereference.rs:183:17:183:23 | S.foo() | -| dereference.rs:184:17:184:30 | ... .foo() | -| dereference.rs:186:17:186:25 | S.bar(...) | -| dereference.rs:187:17:187:29 | S.bar(...) | -| main.rs:2634:13:2634:31 | ...::from(...) | -| main.rs:2635:13:2635:31 | ...::from(...) | -| main.rs:2636:13:2636:31 | ...::from(...) | -| main.rs:2642:13:2642:31 | ...::from(...) | -| main.rs:2643:13:2643:31 | ...::from(...) | -| main.rs:2644:13:2644:31 | ...::from(...) | +multipleResolvedTargets +| main.rs:3087:13:3087:17 | x.f() | diff --git a/rust/ql/test/library-tests/type-inference/blanket_impl.rs b/rust/ql/test/library-tests/type-inference/blanket_impl.rs index 49fcd8af0a6..c139af01c42 100644 --- a/rust/ql/test/library-tests/type-inference/blanket_impl.rs +++ b/rust/ql/test/library-tests/type-inference/blanket_impl.rs @@ -236,7 +236,7 @@ mod blanket_like_impl { impl MyTrait2 for &&S1 { // MyTrait2RefRefS1::m2 fn m2(self) { - self.m1() // $ MISSING: target=S1::m1 + self.m1() // $ target=S1::m1 } } diff --git a/rust/ql/test/library-tests/type-inference/dereference.rs b/rust/ql/test/library-tests/type-inference/dereference.rs index f84d03a3a4e..6b8d659eb3e 100644 --- a/rust/ql/test/library-tests/type-inference/dereference.rs +++ b/rust/ql/test/library-tests/type-inference/dereference.rs @@ -179,12 +179,12 @@ mod ref_vs_mut_ref { } pub fn test() { - let x = (&S).foo(); // $ target=MyTrait1::foo1 type=x:S $ SPURIOUS: target=MyTrait1::foo2 - let y = S.foo(); // $ target=MyTrait1::foo1 type=y:S $ SPURIOUS: target=MyTrait1::foo2 - let z = (&mut S).foo(); // $ target=MyTrait1::foo2 type=z:i64 $ SPURIOUS: target=MyTrait1::foo1 + let x = (&S).foo(); // $ target=MyTrait1::foo1 type=x:S + let y = S.foo(); // $ target=MyTrait1::foo1 type=y:S + let z = (&mut S).foo(); // $ target=MyTrait1::foo2 type=z:i64 - let x = S.bar(&S); // $ target=MyTrait2::bar1 type=x:S $ SPURIOUS: target=MyTrait2::bar2 - let y = S.bar(&mut S); // $ target=MyTrait2::bar2 type=y:i64 $ SPURIOUS: target=MyTrait2::bar1 + let x = S.bar(&S); // $ target=MyTrait2::bar1 type=x:S + let y = S.bar(&mut S); // $ target=MyTrait2::bar2 type=y:i64 } } @@ -212,7 +212,7 @@ mod rust_reference_example { pub fn main() { let mut f = Foo {}; - f.bar(); // $ SPURIOUS: target=bar1 $ MISSING: target=bar2 + f.bar(); // $ target=bar2 } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index f78202969b8..d367525c7b8 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -827,6 +827,21 @@ mod function_trait_bounds { } } + trait MyTrait2 { + // MyTrait2::m2 + fn m2(self); + } + + trait MyTrait3 { + // MyTrait3::m2 + fn m2(&self); + } + + fn bound_overlap(x: T, y: &T) { + x.m2(); // $ target=MyTrait2::m2 + y.m2(); // $ target=MyTrait3::m2 + } + pub fn f() { let x = MyThing { a: S1 }; let y = MyThing { a: S2 }; @@ -1424,7 +1439,6 @@ mod option_methods { x2.set(S); // $ target=MyOption::set println!("{:?}", x2); - // missing type `S` from `MyOption` (but can resolve `MyTrait`) let mut x3 = MyOption::new(); // $ target=new x3.call_set(S); // $ target=call_set println!("{:?}", x3); @@ -2626,7 +2640,7 @@ mod loops { let mut strings1 = ["foo", "bar", "baz"]; // $ type=strings1:TArray.TRef.str for s in &strings1 {} // $ type=s:TRef.TRef.str - for s in &mut strings1 {} // $ type=s:TRef.TRef.str + for s in &mut strings1 {} // $ type=s:TRefMut.TRef.str for s in strings1 {} // $ type=s:TRef.str let strings2 = // $ type=strings2:TArray.String @@ -3036,6 +3050,55 @@ mod context_typed { } } +mod literal_overlap { + trait MyTrait { + // MyTrait::f + fn f(self) -> Self; + + // MyTrait::g + fn g(&self, other: &Self) -> &Self { + self.f() // $ target=Reff + } + } + + impl MyTrait for i32 { + // i32f + fn f(self) -> Self { + self + } + } + + impl MyTrait for usize { + // usizef + fn f(self) -> Self { + self + } + } + + impl MyTrait for &T { + // Reff + fn f(self) -> Self { + self + } + } + + pub fn f() -> usize { + let mut x = 0; + x = x.f(); // $ target=usizef $ SPURIOUS: target=i32f + x + } + + fn g() { + let x: usize = 0; + let y = &1; + let z = x.g(y); // $ target=MyTrait::g + + let x = 0; // $ SPURIOUS: type=x:i32 $ MISSING: type=x:usize + let y: usize = 1; + let z = x.max(y); // $ target=max + } +} + mod blanket_impl; mod closure; mod dereference; diff --git a/rust/ql/test/library-tests/type-inference/pattern_matching.rs b/rust/ql/test/library-tests/type-inference/pattern_matching.rs index b7f96cd555b..33e6b9f09f3 100755 --- a/rust/ql/test/library-tests/type-inference/pattern_matching.rs +++ b/rust/ql/test/library-tests/type-inference/pattern_matching.rs @@ -269,7 +269,7 @@ pub fn identifier_patterns() { let mut ref_mut_val = 5i32; match &mut ref_mut_val { ref mut x => { - let ref_mut_bound = x; // $ type=ref_mut_bound:TRef.TRef.i32 + let ref_mut_bound = x; // $ type=ref_mut_bound:TRefMut.TRefMut.i32 **ref_mut_bound += 1; // $ target=deref target=add_assign println!("Ref mut pattern"); } diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index ff3545f0c0f..d5b9e30f05e 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -418,8 +418,8 @@ inferCertainType | dereference.rs:151:16:151:19 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:151:16:151:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:151:27:153:9 | { ... } | | dereference.rs:147:5:147:13 | S | -| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:158:16:158:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:158:16:158:19 | SelfParam | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:158:29:160:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:164:16:164:19 | SelfParam | | dereference.rs:163:5:165:5 | Self [trait MyTrait2] | | dereference.rs:164:22:164:24 | arg | | dereference.rs:163:20:163:21 | T1 | @@ -428,20 +428,20 @@ inferCertainType | dereference.rs:169:22:169:24 | arg | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:169:36:171:9 | { ... } | | dereference.rs:147:5:147:13 | S | | dereference.rs:176:16:176:19 | SelfParam | | dereference.rs:147:5:147:13 | S | -| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | & | -| dereference.rs:176:22:176:24 | arg | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:176:22:176:24 | arg | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:176:42:178:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:181:19:188:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:182:17:182:20 | (...) | | {EXTERNAL LOCATION} | & | | dereference.rs:182:18:182:19 | &S | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | & | +| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | &mut | | dereference.rs:186:23:186:24 | &S | | {EXTERNAL LOCATION} | & | -| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | & | +| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | &mut | | dereference.rs:196:16:196:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:196:16:196:20 | SelfParam | TRef | dereference.rs:195:5:197:5 | Self [trait Bar] | -| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:201:16:201:24 | SelfParam | TRef | dereference.rs:193:5:193:17 | Foo | +| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:201:16:201:24 | SelfParam | TRefMut | dereference.rs:193:5:193:17 | Foo | | dereference.rs:201:27:203:9 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:202:22:202:38 | "In struct impl!\\n" | | {EXTERNAL LOCATION} | & | | dereference.rs:202:22:202:38 | "In struct impl!\\n" | TRef | {EXTERNAL LOCATION} | str | @@ -1322,2255 +1322,2290 @@ inferCertainType | main.rs:825:32:827:9 | { ... } | | main.rs:820:10:820:10 | T | | main.rs:826:13:826:13 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:826:13:826:13 | x | T | main.rs:820:10:820:10 | T | -| main.rs:830:16:888:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:831:13:831:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:831:17:831:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:13:832:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:17:832:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:834:18:834:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:834:18:834:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:834:18:834:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:834:18:834:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:834:26:834:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:835:18:835:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:835:18:835:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:835:18:835:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:835:18:835:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:835:26:835:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:13:837:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:17:837:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:13:838:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:17:838:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:840:18:840:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:840:18:840:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:840:18:840:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:840:18:840:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:840:26:840:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:841:18:841:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:841:18:841:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:841:18:841:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:841:18:841:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:841:26:841:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:13:843:14 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:18:843:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:13:844:14 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:18:844:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:846:31:846:32 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:847:18:847:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:847:18:847:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:847:18:847:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:847:18:847:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:848:33:848:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:832:15:832:18 | SelfParam | | main.rs:830:5:833:5 | Self [trait MyTrait2] | +| main.rs:837:15:837:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:837:15:837:19 | SelfParam | TRef | main.rs:835:5:838:5 | Self [trait MyTrait3] | +| main.rs:840:46:840:46 | x | | main.rs:840:22:840:43 | T | +| main.rs:840:52:840:52 | y | | {EXTERNAL LOCATION} | & | +| main.rs:840:52:840:52 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:840:59:843:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:841:9:841:9 | x | | main.rs:840:22:840:43 | T | +| main.rs:842:9:842:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:842:9:842:9 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:845:16:903:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:846:13:846:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:846:17:846:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:13:847:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:17:847:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | | main.rs:849:18:849:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:849:18:849:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:849:18:849:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:850:33:850:34 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:851:18:851:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:851:18:851:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:851:18:851:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:851:18:851:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:852:31:852:32 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:853:18:853:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:853:18:853:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:853:18:853:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:853:18:853:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:854:33:854:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:850:18:850:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:13:852:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:17:852:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:13:853:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:17:853:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | | main.rs:855:18:855:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:855:18:855:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:855:18:855:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:856:33:856:34 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:857:18:857:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:857:18:857:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:857:18:857:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:857:18:857:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:858:36:858:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:859:18:859:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:859:18:859:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:859:18:859:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:859:18:859:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:860:36:860:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:861:18:861:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:861:18:861:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:861:18:861:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:861:18:861:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:862:36:862:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:863:18:863:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:863:18:863:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:863:18:863:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:863:18:863:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:864:36:864:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:865:18:865:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:865:18:865:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:865:18:865:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:865:18:865:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:867:13:867:14 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:867:18:869:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:868:16:868:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:13:870:14 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:18:872:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:871:16:871:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:874:37:874:38 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:875:18:875:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:875:18:875:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:875:18:875:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:875:18:875:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:876:39:876:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:877:18:877:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:877:18:877:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:877:18:877:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:877:18:877:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:878:39:878:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:879:18:879:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:879:18:879:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:879:18:879:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:879:18:879:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:880:37:880:38 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:881:18:881:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:881:18:881:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:881:18:881:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:881:18:881:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:882:39:882:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:883:18:883:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:883:18:883:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:883:18:883:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:883:18:883:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:884:39:884:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:885:18:885:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:885:18:885:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:885:18:885:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:885:18:885:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:887:13:887:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:898:19:898:22 | SelfParam | | main.rs:892:5:895:5 | Wrapper | -| main.rs:898:19:898:22 | SelfParam | A | main.rs:897:10:897:10 | A | -| main.rs:898:30:900:9 | { ... } | | main.rs:897:10:897:10 | A | -| main.rs:899:13:899:16 | self | | main.rs:892:5:895:5 | Wrapper | -| main.rs:899:13:899:16 | self | A | main.rs:897:10:897:10 | A | -| main.rs:907:15:907:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:909:15:909:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:913:9:916:9 | { ... } | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:914:13:914:16 | self | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:923:19:923:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:923:19:923:23 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:923:26:923:26 | a | | main.rs:923:16:923:16 | A | -| main.rs:925:22:925:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:925:22:925:26 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:925:29:925:29 | a | | main.rs:925:19:925:19 | A | -| main.rs:925:35:925:35 | b | | main.rs:925:19:925:19 | A | -| main.rs:925:75:928:9 | { ... } | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:926:13:926:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:926:13:926:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:926:22:926:22 | a | | main.rs:925:19:925:19 | A | -| main.rs:927:13:927:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:927:13:927:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:927:22:927:22 | b | | main.rs:925:19:925:19 | A | -| main.rs:936:21:936:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:936:21:936:25 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:938:20:938:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:938:20:938:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:940:20:940:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:940:20:940:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:956:15:956:18 | SelfParam | | main.rs:943:5:944:13 | S | -| main.rs:956:45:958:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:966:19:966:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:966:19:966:23 | SelfParam | TRef | main.rs:943:5:944:13 | S | -| main.rs:966:26:966:26 | a | | main.rs:966:16:966:16 | A | -| main.rs:966:46:968:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:966:46:968:9 | { ... } | A | main.rs:966:16:966:16 | A | -| main.rs:967:13:967:32 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:967:30:967:30 | a | | main.rs:966:16:966:16 | A | -| main.rs:975:15:975:18 | SelfParam | | main.rs:946:5:947:14 | S2 | -| main.rs:975:45:977:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:975:45:977:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:976:13:976:35 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:976:30:976:33 | self | | main.rs:946:5:947:14 | S2 | -| main.rs:982:30:984:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:982:30:984:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:983:13:983:33 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:989:22:989:26 | thing | | main.rs:989:10:989:19 | T | -| main.rs:990:9:990:13 | thing | | main.rs:989:10:989:19 | T | -| main.rs:997:21:997:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:997:21:997:25 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:997:34:999:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:1001:20:1001:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1001:20:1001:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1001:43:1003:9 | { ... } | | main.rs:943:5:944:13 | S | -| main.rs:1005:20:1005:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1005:20:1005:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1005:43:1007:9 | { ... } | | main.rs:946:5:947:14 | S2 | -| main.rs:1010:16:1038:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1013:18:1013:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1013:18:1013:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1013:18:1013:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1013:18:1013:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1018:18:1018:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1018:18:1018:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1018:18:1018:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1018:18:1018:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1022:18:1022:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1022:18:1022:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1022:18:1022:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1022:18:1022:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1025:18:1025:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1025:18:1025:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1025:18:1025:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:856:18:856:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:13:858:14 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:18:858:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:13:859:14 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:18:859:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:861:31:861:32 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:862:18:862:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:863:33:863:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:864:18:864:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:865:33:865:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:866:18:866:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:867:31:867:32 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:868:18:868:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:869:33:869:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:870:18:870:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:871:33:871:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:872:18:872:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:873:36:873:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:874:18:874:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:875:36:875:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:876:18:876:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:877:36:877:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:878:18:878:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:879:36:879:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:880:18:880:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:882:18:884:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:883:16:883:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:13:885:14 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:18:887:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:886:16:886:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:889:37:889:38 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:890:18:890:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:891:39:891:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:892:18:892:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:893:39:893:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:894:18:894:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:895:37:895:38 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:896:18:896:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:897:39:897:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:898:18:898:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:899:39:899:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:900:18:900:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:902:13:902:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:913:19:913:22 | SelfParam | | main.rs:907:5:910:5 | Wrapper | +| main.rs:913:19:913:22 | SelfParam | A | main.rs:912:10:912:10 | A | +| main.rs:913:30:915:9 | { ... } | | main.rs:912:10:912:10 | A | +| main.rs:914:13:914:16 | self | | main.rs:907:5:910:5 | Wrapper | +| main.rs:914:13:914:16 | self | A | main.rs:912:10:912:10 | A | +| main.rs:922:15:922:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:924:15:924:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:928:9:931:9 | { ... } | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:929:13:929:16 | self | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:938:19:938:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:938:19:938:23 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:938:26:938:26 | a | | main.rs:938:16:938:16 | A | +| main.rs:940:22:940:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:940:22:940:26 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:940:29:940:29 | a | | main.rs:940:19:940:19 | A | +| main.rs:940:35:940:35 | b | | main.rs:940:19:940:19 | A | +| main.rs:940:75:943:9 | { ... } | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:941:13:941:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:941:13:941:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:941:22:941:22 | a | | main.rs:940:19:940:19 | A | +| main.rs:942:13:942:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:942:13:942:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:942:22:942:22 | b | | main.rs:940:19:940:19 | A | +| main.rs:951:21:951:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:951:21:951:25 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:953:20:953:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:953:20:953:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:955:20:955:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:955:20:955:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:971:15:971:18 | SelfParam | | main.rs:958:5:959:13 | S | +| main.rs:971:45:973:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:981:19:981:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:981:19:981:23 | SelfParam | TRef | main.rs:958:5:959:13 | S | +| main.rs:981:26:981:26 | a | | main.rs:981:16:981:16 | A | +| main.rs:981:46:983:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:981:46:983:9 | { ... } | A | main.rs:981:16:981:16 | A | +| main.rs:982:13:982:32 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:982:30:982:30 | a | | main.rs:981:16:981:16 | A | +| main.rs:990:15:990:18 | SelfParam | | main.rs:961:5:962:14 | S2 | +| main.rs:990:45:992:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:990:45:992:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:991:13:991:35 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:991:30:991:33 | self | | main.rs:961:5:962:14 | S2 | +| main.rs:997:30:999:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:997:30:999:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:998:13:998:33 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1004:22:1004:26 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1005:9:1005:13 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1012:21:1012:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1012:21:1012:25 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1012:34:1014:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:1016:20:1016:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1016:20:1016:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1016:43:1018:9 | { ... } | | main.rs:958:5:959:13 | S | +| main.rs:1020:20:1020:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1020:20:1020:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1020:43:1022:9 | { ... } | | main.rs:961:5:962:14 | S2 | +| main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1028:18:1028:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1031:18:1031:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1031:18:1031:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1031:18:1031:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1033:18:1033:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1045:19:1045:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1045:19:1045:23 | SelfParam | TRef | main.rs:1042:5:1046:5 | Self [trait Supertrait] | -| main.rs:1045:26:1045:32 | content | | main.rs:1043:9:1043:21 | Content | -| main.rs:1050:24:1050:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1050:24:1050:28 | SelfParam | TRef | main.rs:1048:5:1051:5 | Self [trait Subtrait] | -| main.rs:1059:23:1059:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1059:23:1059:27 | SelfParam | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1059:68:1062:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1060:13:1060:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1060:13:1060:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1061:13:1061:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1061:13:1061:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1069:19:1069:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1069:19:1069:23 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1069:19:1069:23 | SelfParam | TRef.T | main.rs:1067:10:1067:10 | T | -| main.rs:1069:26:1069:33 | _content | | main.rs:1067:10:1067:10 | T | -| main.rs:1069:51:1071:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1070:22:1070:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1076:24:1076:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1076:24:1076:28 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1076:24:1076:28 | SelfParam | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1077:15:1077:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1077:15:1077:18 | self | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:15:1077:18 | self | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1081:33:1081:36 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1081:33:1081:36 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1082:9:1082:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1082:9:1082:12 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1085:35:1085:38 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1085:35:1085:38 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1085:93:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1086:9:1086:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1086:9:1086:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1087:9:1087:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1087:9:1087:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1090:15:1096:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1091:28:1091:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1094:28:1094:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1095:37:1095:42 | &item2 | | {EXTERNAL LOCATION} | & | -| main.rs:1112:15:1112:18 | SelfParam | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1112:15:1112:18 | SelfParam | A | main.rs:1111:10:1111:10 | T | -| main.rs:1112:26:1117:9 | { ... } | | main.rs:1111:10:1111:10 | T | -| main.rs:1113:19:1113:22 | self | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1113:19:1113:22 | self | A | main.rs:1111:10:1111:10 | T | -| main.rs:1115:17:1115:32 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1120:16:1126:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1122:13:1122:13 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1122:17:1122:36 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1124:18:1124:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1124:18:1124:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1124:18:1124:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1124:18:1124:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1125:18:1125:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1125:18:1125:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1125:18:1125:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1125:18:1125:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1125:26:1125:26 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1147:15:1147:18 | SelfParam | | main.rs:1145:5:1148:5 | Self [trait MyTrait1] | -| main.rs:1152:15:1152:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1152:15:1152:19 | SelfParam | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1155:9:1161:9 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1157:17:1157:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1157:17:1157:20 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1159:27:1159:30 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1159:27:1159:30 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1166:15:1166:18 | SelfParam | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1169:9:1175:9 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1171:17:1171:20 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1173:26:1173:30 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1173:27:1173:30 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1180:15:1180:18 | SelfParam | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1180:15:1180:18 | SelfParam | A | main.rs:1178:10:1178:10 | T | -| main.rs:1180:26:1182:9 | { ... } | | main.rs:1178:10:1178:10 | T | -| main.rs:1181:13:1181:16 | self | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1181:13:1181:16 | self | A | main.rs:1178:10:1178:10 | T | -| main.rs:1189:15:1189:18 | SelfParam | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1189:15:1189:18 | SelfParam | A | main.rs:1187:10:1187:10 | T | -| main.rs:1189:35:1191:9 | { ... } | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1189:35:1191:9 | { ... } | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:13:1190:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1190:26:1190:29 | self | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1190:26:1190:29 | self | A | main.rs:1187:10:1187:10 | T | -| main.rs:1198:44:1198:44 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1198:57:1200:5 | { ... } | | main.rs:1198:22:1198:23 | T1 | -| main.rs:1199:9:1199:9 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1202:56:1202:56 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1202:62:1206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1204:17:1204:17 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1205:18:1205:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1205:18:1205:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1205:18:1205:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1205:18:1205:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1208:16:1232:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1209:13:1209:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1209:17:1209:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:13:1210:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:17:1210:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1212:18:1212:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1212:18:1212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1212:18:1212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1212:18:1212:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1212:26:1212:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1213:18:1213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1213:18:1213:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1213:18:1213:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1213:26:1213:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:13:1215:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:17:1215:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:13:1216:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:17:1216:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1218:18:1218:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1218:18:1218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1218:18:1218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1218:18:1218:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1218:26:1218:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1219:18:1219:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1219:18:1219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1219:18:1219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1219:18:1219:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1219:26:1219:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1221:13:1221:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1221:17:1221:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:13:1222:13 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:17:1222:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1224:18:1224:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1224:18:1224:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1224:18:1224:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1224:26:1224:26 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1225:18:1225:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1225:18:1225:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1225:18:1225:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1225:18:1225:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1225:26:1225:26 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1227:13:1227:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1227:17:1227:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1228:31:1228:31 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1230:13:1230:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1230:17:1230:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1231:31:1231:31 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1248:22:1248:22 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1248:22:1248:22 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1248:35:1250:5 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1248:35:1250:5 | { ... } | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1249:9:1249:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1249:9:1249:9 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1253:17:1253:20 | SelfParam | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1253:29:1255:9 | { ... } | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1258:21:1258:21 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1261:5:1263:5 | { ... } | | main.rs:1258:17:1258:18 | T2 | -| main.rs:1262:9:1262:9 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1265:16:1281:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1267:18:1267:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1267:18:1267:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1267:18:1267:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1267:18:1267:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1267:26:1267:31 | id(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1267:29:1267:30 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1270:18:1270:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1270:18:1270:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1270:18:1270:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1270:18:1270:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1270:26:1270:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1270:26:1270:37 | id::<...>(...) | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:35:1270:36 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1274:18:1274:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1274:18:1274:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1274:18:1274:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1274:18:1274:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1274:26:1274:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1274:26:1274:44 | id::<...>(...) | TRef | main.rs:1244:5:1244:25 | dyn Trait | -| main.rs:1274:42:1274:43 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1277:9:1277:25 | into::<...>(...) | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1280:13:1280:13 | y | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1294:22:1294:25 | SelfParam | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1294:22:1294:25 | SelfParam | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1294:22:1294:25 | SelfParam | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1294:35:1301:9 | { ... } | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1295:19:1295:22 | self | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1295:19:1295:22 | self | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1295:19:1295:22 | self | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1296:43:1296:82 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1296:50:1296:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1297:43:1297:81 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1297:50:1297:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1325:10:1325:10 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1325:30:1328:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1326:17:1326:17 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1327:18:1327:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1327:18:1327:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1327:18:1327:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1342:22:1342:25 | SelfParam | | main.rs:1340:5:1343:5 | Self [trait TraitWithAssocType] | -| main.rs:1350:22:1350:25 | SelfParam | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1350:22:1350:25 | SelfParam | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1350:44:1352:9 | { ... } | E | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | T | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:16:1351:19 | self | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1351:16:1351:19 | self | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1355:16:1377:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1357:13:1357:14 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1357:13:1357:14 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:13:1357:14 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1358:18:1358:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1358:18:1358:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1358:18:1358:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1358:18:1358:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1358:26:1358:27 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1358:26:1358:27 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1358:26:1358:27 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1361:13:1361:14 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1361:13:1361:14 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1361:13:1361:14 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1362:18:1362:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1362:18:1362:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1362:18:1362:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1362:18:1362:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1362:26:1362:27 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1362:26:1362:27 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1362:26:1362:27 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:13:1365:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1365:13:1365:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1366:18:1366:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1366:18:1366:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1366:18:1366:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1366:18:1366:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1366:26:1366:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1366:26:1366:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:13:1369:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1369:13:1369:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:13:1369:14 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1370:18:1370:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1370:18:1370:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1370:18:1370:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1370:18:1370:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1370:26:1370:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1370:26:1370:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1370:26:1370:27 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:9:1372:55 | g(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1374:13:1374:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1374:13:1374:13 | x | E | main.rs:1304:5:1305:14 | S1 | -| main.rs:1374:13:1374:13 | x | T | main.rs:1330:5:1330:34 | S4 | -| main.rs:1374:13:1374:13 | x | T.T41 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1374:13:1374:13 | x | T.T42 | main.rs:1332:5:1332:22 | S5 | -| main.rs:1374:13:1374:13 | x | T.T42.T5 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1376:22:1376:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1389:16:1389:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1389:16:1389:24 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1389:27:1389:31 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:21:1391:29 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1391:21:1391:29 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1391:32:1391:36 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:42:1393:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1392:13:1392:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1392:13:1392:16 | self | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1392:22:1392:26 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1398:16:1398:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1398:16:1398:24 | SelfParam | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1398:16:1398:24 | SelfParam | TRef.T | main.rs:1396:10:1396:10 | T | -| main.rs:1398:27:1398:31 | value | | main.rs:1396:10:1396:10 | T | -| main.rs:1398:37:1398:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1402:26:1404:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1402:26:1404:9 | { ... } | T | main.rs:1401:10:1401:10 | T | -| main.rs:1408:20:1408:23 | SelfParam | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1408:41:1413:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:41:1413:9 | { ... } | T | main.rs:1407:10:1407:10 | T | -| main.rs:1409:19:1409:22 | self | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1419:16:1465:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1420:13:1420:14 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:13:1420:14 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1420:18:1420:37 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:18:1420:37 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1421:18:1421:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1421:18:1421:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1421:18:1421:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1421:18:1421:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1421:26:1421:27 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1421:26:1421:27 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1423:17:1423:18 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1423:22:1423:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1424:9:1424:10 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1425:18:1425:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1425:18:1425:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1425:18:1425:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1425:18:1425:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:17:1428:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:22:1428:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:9:1429:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1430:18:1430:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1430:18:1430:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1430:18:1430:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1430:18:1430:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1430:26:1430:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:17:1432:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:22:1432:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:9:1433:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1433:23:1433:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1433:28:1433:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1434:18:1434:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1434:18:1434:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1434:18:1434:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1434:18:1434:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1434:26:1434:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:18:1437:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1437:18:1437:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1437:18:1437:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1437:18:1437:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1060:19:1060:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1060:19:1060:23 | SelfParam | TRef | main.rs:1057:5:1061:5 | Self [trait Supertrait] | +| main.rs:1060:26:1060:32 | content | | main.rs:1058:9:1058:21 | Content | +| main.rs:1065:24:1065:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1065:24:1065:28 | SelfParam | TRef | main.rs:1063:5:1066:5 | Self [trait Subtrait] | +| main.rs:1074:23:1074:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1074:23:1074:27 | SelfParam | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1074:68:1077:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1075:13:1075:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1075:13:1075:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1076:13:1076:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1076:13:1076:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1084:19:1084:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1084:19:1084:23 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | +| main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | +| main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1092:15:1092:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1092:15:1092:18 | self | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:15:1092:18 | self | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1096:33:1096:36 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1096:33:1096:36 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1097:9:1097:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1097:9:1097:12 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1100:35:1100:38 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1100:35:1100:38 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1100:93:1103:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1101:9:1101:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1101:9:1101:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1102:9:1102:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1102:9:1102:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1105:15:1111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1106:28:1106:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1109:28:1109:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1110:37:1110:42 | &item2 | | {EXTERNAL LOCATION} | & | +| main.rs:1127:15:1127:18 | SelfParam | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1127:15:1127:18 | SelfParam | A | main.rs:1126:10:1126:10 | T | +| main.rs:1127:26:1132:9 | { ... } | | main.rs:1126:10:1126:10 | T | +| main.rs:1128:19:1128:22 | self | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1128:19:1128:22 | self | A | main.rs:1126:10:1126:10 | T | +| main.rs:1130:17:1130:32 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1135:16:1141:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1137:13:1137:13 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1162:15:1162:18 | SelfParam | | main.rs:1160:5:1163:5 | Self [trait MyTrait1] | +| main.rs:1167:15:1167:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1167:15:1167:19 | SelfParam | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1170:9:1176:9 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1172:17:1172:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1172:17:1172:20 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1174:27:1174:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1174:27:1174:30 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1181:15:1181:18 | SelfParam | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1184:9:1190:9 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1186:17:1186:20 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1188:26:1188:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1188:27:1188:30 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1195:15:1195:18 | SelfParam | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1195:15:1195:18 | SelfParam | A | main.rs:1193:10:1193:10 | T | +| main.rs:1195:26:1197:9 | { ... } | | main.rs:1193:10:1193:10 | T | +| main.rs:1196:13:1196:16 | self | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1196:13:1196:16 | self | A | main.rs:1193:10:1193:10 | T | +| main.rs:1204:15:1204:18 | SelfParam | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1204:15:1204:18 | SelfParam | A | main.rs:1202:10:1202:10 | T | +| main.rs:1204:35:1206:9 | { ... } | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1204:35:1206:9 | { ... } | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:13:1205:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1205:26:1205:29 | self | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1205:26:1205:29 | self | A | main.rs:1202:10:1202:10 | T | +| main.rs:1213:44:1213:44 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1213:57:1215:5 | { ... } | | main.rs:1213:22:1213:23 | T1 | +| main.rs:1214:9:1214:9 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1217:56:1217:56 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1217:62:1221:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:13:1224:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1224:17:1224:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:13:1225:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:13:1230:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:17:1230:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:13:1231:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1236:13:1236:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1236:17:1236:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:13:1237:13 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1242:13:1242:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1242:17:1242:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1243:31:1243:31 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1245:13:1245:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1245:17:1245:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1246:31:1246:31 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1263:22:1263:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1263:22:1263:22 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1263:35:1265:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1263:35:1265:5 | { ... } | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1264:9:1264:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1264:9:1264:9 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1268:17:1268:20 | SelfParam | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1268:29:1270:9 | { ... } | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1273:21:1273:21 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1276:5:1278:5 | { ... } | | main.rs:1273:17:1273:18 | T2 | +| main.rs:1277:9:1277:9 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | +| main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1292:9:1292:25 | into::<...>(...) | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1295:13:1295:13 | y | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1309:22:1309:25 | SelfParam | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1309:22:1309:25 | SelfParam | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1309:22:1309:25 | SelfParam | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1309:35:1316:9 | { ... } | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1310:19:1310:22 | self | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1310:19:1310:22 | self | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1310:19:1310:22 | self | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1311:43:1311:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:50:1311:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:43:1312:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:50:1312:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1340:10:1340:10 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1340:30:1343:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1341:17:1341:17 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | +| main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1365:22:1365:25 | SelfParam | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1365:44:1367:9 | { ... } | E | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | T | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:16:1366:19 | self | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1366:16:1366:19 | self | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1370:16:1392:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1372:13:1372:14 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1372:13:1372:14 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:13:1372:14 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1376:13:1376:14 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1376:13:1376:14 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1376:13:1376:14 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:13:1380:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1380:13:1380:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:13:1384:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1384:13:1384:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:13:1384:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:9:1387:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1389:13:1389:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1389:13:1389:13 | x | E | main.rs:1319:5:1320:14 | S1 | +| main.rs:1389:13:1389:13 | x | T | main.rs:1345:5:1345:34 | S4 | +| main.rs:1389:13:1389:13 | x | T.T41 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | +| main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1404:16:1404:24 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1406:21:1406:29 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1407:13:1407:16 | self | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut.T | main.rs:1411:10:1411:10 | T | +| main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | +| main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1417:26:1419:9 | { ... } | T | main.rs:1416:10:1416:10 | T | +| main.rs:1423:20:1423:23 | SelfParam | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1423:41:1428:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:41:1428:9 | { ... } | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:19:1424:22 | self | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1434:16:1479:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1435:13:1435:14 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1438:22:1438:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1439:9:1439:10 | x2 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1440:18:1440:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:26:1440:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:26:1440:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:22:1442:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1443:9:1443:10 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | | main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1448:18:1448:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1452:13:1452:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1453:13:1453:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1455:18:1455:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1455:18:1455:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1455:18:1455:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1455:18:1455:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1458:30:1463:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1459:13:1461:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1459:22:1461:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1464:18:1464:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1464:18:1464:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1464:18:1464:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1464:18:1464:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1482:15:1482:18 | SelfParam | | main.rs:1470:5:1471:19 | S | -| main.rs:1482:15:1482:18 | SelfParam | T | main.rs:1481:10:1481:10 | T | -| main.rs:1482:26:1484:9 | { ... } | | main.rs:1481:10:1481:10 | T | -| main.rs:1483:13:1483:16 | self | | main.rs:1470:5:1471:19 | S | -| main.rs:1483:13:1483:16 | self | T | main.rs:1481:10:1481:10 | T | -| main.rs:1486:15:1486:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1486:15:1486:19 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1486:15:1486:19 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1486:28:1488:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1486:28:1488:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1487:13:1487:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1487:14:1487:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1487:14:1487:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1487:14:1487:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1490:15:1490:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1490:15:1490:25 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1490:15:1490:25 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1490:34:1492:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1490:34:1492:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1491:13:1491:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1491:14:1491:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1491:14:1491:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1491:14:1491:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1496:29:1496:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1496:29:1496:33 | SelfParam | TRef | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1497:33:1497:36 | SelfParam | | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1503:29:1503:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1503:43:1505:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1504:17:1504:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:33:1508:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1508:33:1508:36 | SelfParam | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:46:1510:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:15:1509:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1509:15:1509:18 | self | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1513:16:1563:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1515:18:1515:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1515:18:1515:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1515:18:1515:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1515:18:1515:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1519:18:1519:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1519:18:1519:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1519:18:1519:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1519:18:1519:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1520:18:1520:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1520:18:1520:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1520:18:1520:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1520:18:1520:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:18:1524:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1524:18:1524:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1524:18:1524:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1524:18:1524:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:26:1524:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1524:26:1524:41 | ...::m2(...) | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1524:38:1524:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1525:18:1525:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1525:18:1525:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1525:18:1525:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1525:18:1525:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1525:26:1525:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1525:26:1525:41 | ...::m3(...) | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:38:1525:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1527:13:1527:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1527:18:1527:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1466:13:1466:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1467:13:1467:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1472:30:1477:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1473:13:1475:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1473:22:1475:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | +| main.rs:1496:15:1496:18 | SelfParam | T | main.rs:1495:10:1495:10 | T | +| main.rs:1496:26:1498:9 | { ... } | | main.rs:1495:10:1495:10 | T | +| main.rs:1497:13:1497:16 | self | | main.rs:1484:5:1485:19 | S | +| main.rs:1497:13:1497:16 | self | T | main.rs:1495:10:1495:10 | T | +| main.rs:1500:15:1500:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1500:15:1500:19 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1500:15:1500:19 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1500:28:1502:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1500:28:1502:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1501:13:1501:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1501:14:1501:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1501:14:1501:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1501:14:1501:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1504:15:1504:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1504:15:1504:25 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1504:15:1504:25 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1504:34:1506:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1504:34:1506:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1505:13:1505:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1505:14:1505:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1505:14:1505:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1505:14:1505:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1510:29:1510:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1510:29:1510:33 | SelfParam | TRef | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1511:33:1511:36 | SelfParam | | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1517:29:1517:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1517:43:1519:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1518:17:1518:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:33:1522:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1522:33:1522:36 | SelfParam | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:46:1524:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1523:15:1523:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1523:15:1523:18 | self | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1527:16:1577:5 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:26:1529:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1530:18:1530:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1530:18:1530:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1530:18:1530:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1530:18:1530:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1530:26:1530:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1532:13:1532:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1532:18:1532:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:26:1534:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1535:18:1535:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1535:18:1535:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1535:18:1535:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1535:18:1535:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1535:26:1535:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1537:13:1537:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1537:18:1537:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1540:18:1540:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1540:18:1540:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1540:18:1540:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1540:18:1540:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1540:28:1540:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1542:20:1542:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1546:18:1546:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1546:18:1546:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1548:13:1548:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1548:26:1548:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1548:26:1548:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1552:17:1552:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1554:13:1554:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1554:24:1554:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1554:25:1554:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1556:17:1556:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1557:18:1557:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1557:18:1557:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1557:18:1557:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1557:18:1557:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1560:13:1560:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1560:24:1560:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1560:25:1560:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1561:17:1561:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1562:18:1562:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1562:18:1562:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1562:18:1562:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1562:18:1562:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1569:16:1569:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1569:16:1569:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:16:1572:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1572:16:1572:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:32:1574:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1572:32:1574:9 | { ... } | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1573:13:1573:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1573:13:1573:16 | self | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1581:16:1581:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1581:16:1581:20 | SelfParam | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1581:36:1583:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1581:36:1583:9 | { ... } | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1582:13:1582:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1582:13:1582:16 | self | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1586:16:1589:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1598:16:1598:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1598:16:1598:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:16:1598:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1598:32:1600:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1598:32:1600:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:32:1600:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1599:13:1599:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1599:13:1599:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1599:13:1599:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:16:1602:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1602:16:1602:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:16:1602:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:23:1602:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1602:23:1602:23 | x | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:23:1602:23 | x | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:42:1604:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1602:42:1604:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:42:1604:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1603:13:1603:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1603:13:1603:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1603:13:1603:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1607:16:1613:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1612:15:1612:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1612:16:1612:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1623:17:1623:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1623:17:1623:25 | SelfParam | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1623:28:1625:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1624:13:1624:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:13:1624:16 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1624:26:1624:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:26:1624:29 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1631:15:1631:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1631:31:1633:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1631:31:1633:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:13:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:15:1632:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:16:1632:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:16:1632:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:15:1635:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:25 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:37:1637:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1635:37:1637:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:13:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:15:1636:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:16:1636:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:16:1636:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:15:1639:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1639:15:1639:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:34:1641:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1639:34:1641:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1640:13:1640:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1640:13:1640:13 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:15:1643:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:34:1645:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1643:34:1645:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:13:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:15:1644:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:16:1644:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:16:1644:16 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1648:16:1661:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1649:13:1649:13 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1649:17:1649:20 | S {...} | | main.rs:1628:5:1628:13 | S | -| main.rs:1650:9:1650:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1651:9:1651:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1652:9:1652:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1652:9:1652:17 | ...::f3(...) | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:15:1652:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1652:16:1652:16 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1654:19:1654:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1654:20:1654:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1654:21:1654:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1659:9:1659:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1659:22:1659:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1660:18:1660:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1660:18:1660:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1660:18:1660:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1660:18:1660:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1675:43:1678:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1675:43:1678:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1675:43:1678:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1682:46:1686:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1682:46:1686:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1682:46:1686:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1690:40:1695:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:40:1695:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1690:40:1695:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:30:1699:34 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1699:69:1706:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:69:1706:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:69:1706:5 | { ... } | T | main.rs:1699:20:1699:27 | T | -| main.rs:1700:21:1700:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:21:1700:25 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1700:21:1700:25 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1702:22:1702:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1702:22:1702:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1702:22:1702:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1702:22:1702:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1709:16:1725:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:9:1712:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1710:37:1710:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1710:37:1710:52 | try_same_error(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:37:1710:52 | try_same_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:54:1712:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1711:22:1711:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1711:22:1711:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1714:9:1716:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1714:37:1714:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:37:1714:55 | try_convert_error(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1714:37:1714:55 | try_convert_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:57:1716:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1715:22:1715:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1715:22:1715:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1718:9:1720:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1718:37:1718:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1718:37:1718:49 | try_chained(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1718:37:1718:49 | try_chained(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:51:1720:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1719:22:1719:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1719:22:1719:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1722:9:1724:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1722:37:1722:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:37:1722:63 | try_complex(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:65:1724:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1723:22:1723:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1723:22:1723:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1729:16:1820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1730:13:1730:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:17:1733:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1734:13:1734:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1734:17:1734:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1735:13:1735:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1735:13:1735:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1735:21:1735:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1735:21:1735:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1736:13:1736:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1736:17:1736:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1737:13:1737:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:17:1737:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:13:1738:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:17:1738:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1741:26:1741:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1741:26:1741:30 | SelfParam | TRef | main.rs:1740:9:1744:9 | Self [trait MyTrait] | -| main.rs:1747:26:1747:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1747:26:1747:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1747:26:1747:30 | SelfParam | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1747:39:1749:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1747:39:1749:13 | { ... } | TRef | main.rs:1746:14:1746:23 | T | -| main.rs:1748:17:1748:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1748:17:1748:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1748:17:1748:20 | self | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1751:31:1753:13 | { ... } | | main.rs:1746:14:1746:23 | T | -| main.rs:1756:17:1756:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1757:17:1757:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1757:37:1757:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1757:38:1757:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1758:13:1758:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:17:1758:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:13:1541:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:18:1541:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1546:13:1546:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1546:18:1546:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1551:13:1551:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1551:18:1551:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1554:28:1554:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1556:20:1556:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1562:13:1562:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1562:26:1562:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1562:26:1562:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1566:17:1566:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1568:13:1568:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1568:24:1568:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1568:25:1568:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1574:24:1574:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1574:25:1574:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:16:1586:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1586:16:1586:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:32:1588:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1586:32:1588:9 | { ... } | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1587:13:1587:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:16 | self | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1595:16:1595:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1595:16:1595:20 | SelfParam | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1595:36:1597:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1595:36:1597:9 | { ... } | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1596:13:1596:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1596:13:1596:16 | self | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1600:16:1603:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1612:16:1612:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1612:16:1612:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:16:1612:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1612:32:1614:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1612:32:1614:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:32:1614:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1613:13:1613:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1613:13:1613:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1613:13:1613:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:16:1616:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1616:16:1616:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:16:1616:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:23:1616:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1616:23:1616:23 | x | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:23:1616:23 | x | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:42:1618:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1616:42:1618:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:42:1618:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1617:13:1617:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1617:13:1617:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1617:13:1617:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1637:17:1637:25 | SelfParam | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:13:1638:16 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:26:1638:29 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1645:31:1647:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:13:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:15:1646:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:16:1646:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:16:1646:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:15:1649:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1649:15:1649:25 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:37:1651:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1649:37:1651:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:13:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:15:1650:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:16:1650:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:16:1650:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:15:1653:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1653:15:1653:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:34:1655:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1653:34:1655:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1654:13:1654:13 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:15:1657:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1657:15:1657:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:34:1659:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1657:34:1659:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:13:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:15:1658:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:16:1658:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:16:1658:16 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1662:16:1675:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1663:13:1663:13 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1663:17:1663:20 | S {...} | | main.rs:1642:5:1642:13 | S | +| main.rs:1664:9:1664:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1665:9:1665:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1666:9:1666:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1666:9:1666:17 | ...::f3(...) | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:15:1666:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1666:16:1666:16 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1668:19:1668:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1689:43:1692:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1696:46:1700:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1696:46:1700:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1696:46:1700:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1704:40:1709:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1704:40:1709:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1704:40:1709:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:30:1713:34 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1713:69:1720:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:69:1720:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:69:1720:5 | { ... } | T | main.rs:1713:20:1713:27 | T | +| main.rs:1714:21:1714:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1714:21:1714:25 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1714:21:1714:25 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1723:16:1739:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1724:9:1726:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1724:37:1724:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1728:37:1728:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1732:37:1732:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1736:37:1736:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:37:1736:63 | try_complex(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:17:1746:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:17:1747:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1748:13:1748:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1748:17:1748:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1749:13:1749:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1749:13:1749:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1749:21:1749:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1749:21:1749:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1750:13:1750:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1750:17:1750:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1751:13:1751:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1751:17:1751:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:13:1752:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:17:1752:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1755:26:1755:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1755:26:1755:30 | SelfParam | TRef | main.rs:1754:9:1758:9 | Self [trait MyTrait] | | main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1761:26:1761:30 | SelfParam | TRef.TSlice | main.rs:1760:14:1760:23 | T | +| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1761:26:1761:30 | SelfParam | TRef.TArray | main.rs:1760:14:1760:23 | T | | main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | | main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1762:17:1762:20 | self | TRef.TSlice | main.rs:1760:14:1760:23 | T | +| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1762:17:1762:20 | self | TRef.TArray | main.rs:1760:14:1760:23 | T | | main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | -| main.rs:1770:13:1770:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1770:13:1770:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:13:1770:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:25:1770:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1770:26:1770:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1771:17:1771:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1771:17:1771:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1772:17:1772:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1772:34:1772:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1772:34:1772:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1772:34:1772:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:13:1773:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:17:1773:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:26:1776:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1776:26:1776:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:39:1778:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1776:39:1778:13 | { ... } | TRef | main.rs:1775:14:1775:23 | T | -| main.rs:1777:17:1777:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1777:18:1777:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1777:18:1777:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1777:18:1777:21 | self | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1777:18:1777:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1780:31:1782:13 | { ... } | | main.rs:1775:14:1775:23 | T | -| main.rs:1785:13:1785:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:17:1785:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1786:17:1786:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1787:17:1787:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1787:37:1787:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1787:38:1787:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1788:13:1788:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1788:17:1788:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1791:26:1791:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1791:39:1793:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1791:39:1793:13 | { ... } | TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1792:18:1792:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1795:31:1797:13 | { ... } | | main.rs:1790:14:1790:23 | T | -| main.rs:1800:13:1800:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1802:17:1802:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1802:33:1802:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:34:1802:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1803:13:1803:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1803:17:1803:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1806:26:1806:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1806:26:1806:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:26:1806:30 | SelfParam | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1806:39:1808:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1806:39:1808:13 | { ... } | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:26:1807:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1807:29:1807:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1807:29:1807:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1807:29:1807:32 | self | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1810:31:1812:13 | { ... } | | main.rs:1805:14:1805:23 | T | -| main.rs:1816:13:1816:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1816:13:1816:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:27:1816:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1817:26:1817:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:26:1817:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:26:1818:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1818:46:1818:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1818:47:1818:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1818:47:1818:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:13:1819:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:17:1819:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1825:16:1837:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1826:13:1826:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:25:1826:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:13:1827:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:25:1827:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1831:17:1833:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1833:16:1835:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1850:30:1852:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1851:13:1851:31 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:16:1858:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:22:1858:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:41:1863:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1859:13:1862:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:20:1860:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:29:1860:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:20:1861:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:29:1861:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:23:1868:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1868:23:1868:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:34:1868:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:45:1871:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1869:13:1869:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1869:13:1869:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1869:23:1869:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:13:1870:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1870:13:1870:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:23:1870:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:16:1876:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:22:1876:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:41:1881:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1877:13:1880:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:20:1878:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:29:1878:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:20:1879:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:29:1879:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:23:1886:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1886:23:1886:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:34:1886:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:45:1889:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1887:13:1887:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1887:13:1887:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1887:23:1887:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:13:1888:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1888:13:1888:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:23:1888:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:16:1894:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:22:1894:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:41:1899:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1895:13:1898:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:20:1896:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:29:1896:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:20:1897:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:29:1897:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:23:1903:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1903:23:1903:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:34:1903:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:45:1906:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1904:13:1904:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1904:13:1904:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1904:23:1904:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:13:1905:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1905:13:1905:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:23:1905:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:16:1911:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:22:1911:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:41:1916:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1912:13:1915:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:20:1913:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:29:1913:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:20:1914:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:29:1914:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:23:1920:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1920:23:1920:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:34:1920:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:45:1923:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1921:13:1921:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1921:13:1921:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1921:23:1921:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:13:1922:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1922:13:1922:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:23:1922:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:16:1928:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:22:1928:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:41:1933:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1929:13:1932:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:20:1930:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:29:1930:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:20:1931:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:29:1931:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:23:1937:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1937:23:1937:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:34:1937:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:45:1940:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1938:13:1938:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1938:13:1938:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1938:23:1938:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:13:1939:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1939:13:1939:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:23:1939:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:19:1945:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:25:1945:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:44:1950:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1946:13:1949:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:20:1947:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:29:1947:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:20:1948:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:29:1948:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:26:1954:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1954:26:1954:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:37:1954:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:48:1957:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1955:13:1955:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1955:13:1955:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1955:23:1955:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:13:1956:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1956:13:1956:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:23:1956:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:18:1962:21 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:24:1962:26 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:43:1967:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1963:13:1966:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:20:1964:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:29:1964:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:20:1965:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:29:1965:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:25:1971:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1971:25:1971:33 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:36:1971:38 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:47:1974:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1972:13:1972:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1972:13:1972:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1972:23:1972:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:13:1973:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1973:13:1973:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:23:1973:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:19:1979:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:25:1979:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:44:1984:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1980:13:1983:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:20:1981:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:29:1981:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:20:1982:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:29:1982:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:26:1988:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1988:26:1988:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:37:1988:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:48:1991:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1989:13:1989:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1989:13:1989:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1989:23:1989:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:13:1990:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1990:13:1990:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:23:1990:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1996:16:1996:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1996:22:1996:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1996:40:2001:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1997:13:2000:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:20:1998:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:30:1998:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1999:20:1999:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1999:30:1999:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:23:2005:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2005:23:2005:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2005:34:2005:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:44:2008:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2006:13:2006:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2006:13:2006:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2006:24:2006:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2007:13:2007:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2007:13:2007:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2007:24:2007:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:16:2013:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2013:22:2013:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:40:2018:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2014:13:2017:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:20:2015:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:30:2015:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2016:20:2016:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2016:30:2016:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:23:2022:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2022:23:2022:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2022:34:2022:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:44:2025:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2023:13:2023:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2023:13:2023:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2023:24:2023:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2024:13:2024:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2024:13:2024:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2024:24:2024:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2030:16:2030:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2030:30:2035:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2031:13:2034:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2032:21:2032:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2033:21:2033:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2040:16:2040:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2040:30:2045:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2041:13:2044:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2042:21:2042:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2043:21:2043:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:15:2049:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2049:15:2049:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:22:2049:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:22:2049:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:44:2051:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:13:2050:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:13:2050:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:23:2050:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:23:2050:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:34:2050:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:34:2050:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:34:2050:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:44:2050:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:44:2050:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:15:2053:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2053:15:2053:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:22:2053:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:22:2053:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:44:2055:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:13:2054:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:13:2054:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:23:2054:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:23:2054:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:34:2054:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:34:2054:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:34:2054:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:44:2054:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:44:2054:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:24:2059:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2059:24:2059:28 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:31:2059:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:31:2059:35 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:75:2061:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2059:75:2061:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2060:14:2060:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:14:2060:17 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:23:2060:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:23:2060:26 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:43:2060:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2060:45:2060:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:45:2060:49 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:55:2060:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:55:2060:59 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:1770:17:1770:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1771:17:1771:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1771:37:1771:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1771:38:1771:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:17:1772:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1775:26:1775:30 | SelfParam | TRef.TSlice | main.rs:1774:14:1774:23 | T | +| main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1776:17:1776:20 | self | TRef.TSlice | main.rs:1774:14:1774:23 | T | +| main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | +| main.rs:1784:13:1784:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1784:13:1784:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1784:13:1784:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:25:1784:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1784:26:1784:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1785:17:1785:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1785:17:1785:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1786:17:1786:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1786:34:1786:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1786:34:1786:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1786:34:1786:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:17:1787:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:17:1791:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1791:18:1791:21 | self | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | +| main.rs:1799:13:1799:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1799:17:1799:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1800:17:1800:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1801:17:1801:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1801:37:1801:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1801:38:1801:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:17:1802:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef.TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:18:1806:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef.TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | +| main.rs:1814:13:1814:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1814:17:1814:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1815:17:1815:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1816:17:1816:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1816:33:1816:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:34:1816:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:17:1817:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1820:26:1820:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1820:26:1820:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1820:26:1820:30 | SelfParam | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1820:39:1822:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1820:39:1822:13 | { ... } | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:26:1821:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1821:29:1821:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1821:29:1821:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1821:29:1821:32 | self | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | +| main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1832:46:1832:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1832:47:1832:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1832:47:1832:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:17:1833:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:16:1851:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1840:13:1840:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:25:1840:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:25:1841:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1845:17:1847:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1847:16:1849:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1864:30:1866:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1865:13:1865:31 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:16:1872:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:22:1872:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:41:1877:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1873:13:1876:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:20:1874:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1882:23:1882:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1883:13:1883:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1884:13:1884:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:41:1895:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1891:13:1894:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:20:1892:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1900:23:1900:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1901:13:1901:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1902:13:1902:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:41:1913:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1909:13:1912:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:20:1910:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1917:23:1917:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1918:13:1918:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1919:13:1919:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:41:1930:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1926:13:1929:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:20:1927:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1934:23:1934:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1935:13:1935:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1936:13:1936:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:41:1947:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1943:13:1946:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:20:1944:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1951:23:1951:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1952:13:1952:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1953:13:1953:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:44:1964:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1960:13:1963:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:20:1961:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1968:26:1968:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1969:13:1969:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1970:13:1970:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:43:1981:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1977:13:1980:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:20:1978:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1985:25:1985:33 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1986:13:1986:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1987:13:1987:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:44:1998:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1994:13:1997:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:20:1995:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2002:26:2002:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2003:13:2003:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2004:13:2004:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2010:40:2015:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2011:13:2014:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:20:2012:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2019:23:2019:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2020:13:2020:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2021:13:2021:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:40:2032:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2028:13:2031:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:20:2029:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2036:23:2036:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2037:13:2037:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2038:13:2038:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2045:13:2048:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2046:21:2046:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2047:21:2047:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2054:16:2054:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2054:30:2059:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2055:13:2058:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2056:21:2056:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2057:21:2057:24 | self | | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2063:22:2063:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | | main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:13:2064:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:13:2064:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:22:2064:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:22:2064:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:33:2064:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:33:2064:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:33:2064:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:42:2064:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:42:2064:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2064:13:2064:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:13:2064:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:13:2064:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:23:2064:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:23:2064:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:34:2064:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2064:34:2064:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:34:2064:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:44:2064:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:44:2064:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:22:2067:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2067:22:2067:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | | main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:13:2068:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:13:2068:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:13:2068:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | | main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:23:2068:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2068:23:2068:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:34:2068:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2068:34:2068:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:34:2068:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2068:34:2068:50 | ... != ... | | {EXTERNAL LOCATION} | bool | | main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:44:2068:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:15:2071:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2071:15:2071:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:22:2071:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:22:2071:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:44:2073:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:13:2072:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:13:2072:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:22:2072:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:22:2072:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:33:2072:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:33:2072:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:33:2072:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:42:2072:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:42:2072:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:15:2075:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2075:15:2075:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:22:2075:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:22:2075:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:44:2077:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:13:2076:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:13:2076:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:23:2076:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:23:2076:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:34:2076:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:34:2076:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:34:2076:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:44:2076:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:44:2076:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2080:26:2080:26 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2080:32:2080:32 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:9:2081:9 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:13:2081:13 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2084:16:2215:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2088:23:2088:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:31:2088:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:23:2089:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:31:2089:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:23:2090:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:30:2090:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:23:2091:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:31:2091:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:23:2092:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:30:2092:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:23:2093:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:32:2093:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:31:2096:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:31:2097:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:31:2098:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:31:2099:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:23:2100:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:31:2100:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:39:2101:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:45:2101:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:17:2104:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:34:2104:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:9:2105:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:27:2105:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:17:2107:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:34:2107:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:9:2108:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:27:2108:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:17:2110:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:34:2110:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:9:2111:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:27:2111:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:17:2113:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:34:2113:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:9:2114:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:27:2114:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:17:2116:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:34:2116:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:9:2117:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:27:2117:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:26:2120:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:34:2120:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:25:2121:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:33:2121:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:26:2122:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:34:2122:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:32:2123:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:23:2124:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:32:2124:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:17:2127:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:37:2127:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:30:2128:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:36:2130:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:29:2131:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:17:2133:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:37:2133:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:9:2134:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:30:2134:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:17:2136:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:34:2136:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:9:2137:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:28:2137:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:17:2139:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:34:2139:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:9:2140:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:28:2140:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:24:2142:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:24:2143:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2146:13:2146:14 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:13:2147:14 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:18:2147:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2150:23:2150:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2150:29:2150:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:23:2151:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:29:2151:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:23:2152:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:28:2152:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:23:2153:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:29:2153:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:23:2154:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:28:2154:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:23:2155:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:29:2155:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:24:2158:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:29:2158:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:24:2159:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:29:2159:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:24:2160:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:29:2160:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:24:2161:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:29:2161:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:24:2162:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:29:2162:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:17:2165:31 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:35:2165:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:9:2166:23 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:28:2166:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:17:2168:31 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:35:2168:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:9:2169:23 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:28:2169:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:17:2171:31 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:35:2171:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:9:2172:23 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:28:2172:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:17:2174:31 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:35:2174:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:9:2175:23 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:28:2175:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:17:2177:31 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:35:2177:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:9:2178:23 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:28:2178:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:27:2181:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:32:2181:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:26:2182:27 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:31:2182:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:27:2183:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:32:2183:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:24:2184:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:30:2184:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2185:24:2185:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:30:2185:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2188:17:2188:34 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2188:38:2188:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:9:2189:26 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:31:2189:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:17:2191:33 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:37:2191:38 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:9:2192:25 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:30:2192:31 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:17:2194:34 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:38:2194:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:9:2195:26 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:31:2195:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:17:2197:31 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:35:2197:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:9:2198:23 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:29:2198:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2200:17:2200:31 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2200:35:2200:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:9:2201:23 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:29:2201:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2204:25:2204:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:25:2205:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:30:2209:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2214:30:2214:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2224:18:2224:21 | SelfParam | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2224:24:2224:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2227:25:2229:5 | { ... } | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2231:41:2233:5 | { ... } | | main.rs:2231:16:2231:39 | impl ... | -| main.rs:2232:9:2232:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2235:41:2237:5 | { ... } | | main.rs:2235:16:2235:39 | impl ... | -| main.rs:2236:9:2236:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2236:9:2236:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2245:13:2245:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2245:13:2245:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2245:13:2245:42 | SelfParam | Ptr.TRef | main.rs:2239:5:2239:14 | S2 | -| main.rs:2246:13:2246:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2246:13:2246:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | -| main.rs:2247:44:2249:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2247:44:2249:9 | { ... } | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2252:41:2254:5 | { ... } | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2256:22:2264:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2257:9:2257:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2257:9:2257:12 | f1(...) | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2258:9:2258:12 | f2(...) | | main.rs:2231:16:2231:39 | impl ... | -| main.rs:2259:9:2259:12 | f3(...) | | main.rs:2235:16:2235:39 | impl ... | -| main.rs:2260:9:2260:12 | f4(...) | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2262:13:2262:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:17:2262:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2263:9:2263:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2274:15:2274:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2274:15:2274:19 | SelfParam | TRef | main.rs:2273:5:2275:5 | Self [trait Trait1] | -| main.rs:2274:22:2274:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2278:15:2278:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2278:15:2278:19 | SelfParam | TRef | main.rs:2277:5:2279:5 | Self [trait Trait2] | -| main.rs:2278:22:2278:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2282:15:2282:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2282:15:2282:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2282:22:2282:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2286:15:2286:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2286:15:2286:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2286:22:2286:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2289:37:2291:5 | { ... } | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2294:18:2294:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2294:18:2294:22 | SelfParam | TRef | main.rs:2293:5:2295:5 | Self [trait MyTrait] | -| main.rs:2298:18:2298:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2298:18:2298:22 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2298:31:2300:9 | { ... } | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2304:18:2304:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2304:18:2304:22 | SelfParam | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2304:18:2304:22 | SelfParam | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2304:30:2307:9 | { ... } | | main.rs:2303:10:2303:17 | T | -| main.rs:2305:25:2305:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2305:25:2305:28 | self | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:25:2305:28 | self | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2310:45:2312:5 | { ... } | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2314:41:2314:41 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2314:52:2316:5 | { ... } | | main.rs:2314:23:2314:23 | A | -| main.rs:2315:9:2315:9 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2318:34:2318:34 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2318:59:2320:5 | { ... } | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2318:59:2320:5 | { ... } | impl(T) | main.rs:2318:24:2318:31 | T | -| main.rs:2319:12:2319:12 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2322:34:2322:34 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2322:67:2324:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2322:67:2324:5 | { ... } | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2322:67:2324:5 | { ... } | T.impl(T) | main.rs:2322:24:2322:31 | T | -| main.rs:2323:17:2323:17 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2326:34:2326:34 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2326:78:2328:5 | { ... } | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T0.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T1.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2327:13:2327:13 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2327:28:2327:28 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2330:26:2330:26 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2330:51:2332:5 | { ... } | | main.rs:2330:23:2330:23 | A | -| main.rs:2331:9:2331:9 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2334:16:2348:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2335:13:2335:13 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2335:17:2335:20 | f1(...) | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2336:9:2336:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2337:9:2337:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2338:13:2338:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2338:17:2338:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2339:32:2339:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:13:2340:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:17:2340:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2341:32:2341:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2343:17:2343:35 | get_a_my_trait2(...) | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2358:16:2358:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2358:16:2358:20 | SelfParam | TRef | main.rs:2354:5:2355:13 | S | -| main.rs:2358:31:2360:9 | { ... } | | main.rs:2354:5:2355:13 | S | -| main.rs:2369:26:2371:9 | { ... } | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2369:26:2371:9 | { ... } | T | main.rs:2368:10:2368:10 | T | -| main.rs:2370:13:2370:38 | MyVec {...} | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2370:27:2370:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2370:27:2370:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2373:17:2373:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2373:17:2373:25 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2373:17:2373:25 | SelfParam | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2373:28:2373:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2373:38:2375:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2374:13:2374:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2374:13:2374:16 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2374:13:2374:16 | self | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2374:28:2374:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2382:18:2382:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2382:18:2382:22 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2382:18:2382:22 | SelfParam | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2382:25:2382:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2382:56:2384:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2382:56:2384:9 | { ... } | TRef | main.rs:2378:10:2378:10 | T | -| main.rs:2383:13:2383:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2383:14:2383:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2383:14:2383:17 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2383:14:2383:17 | self | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2383:24:2383:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2387:22:2387:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2387:22:2387:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2387:22:2387:26 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2387:35:2389:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:17:2388:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2388:17:2388:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2388:17:2388:21 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2391:37:2391:37 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2391:43:2391:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2395:9:2395:9 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2395:11:2395:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2398:16:2409:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2399:17:2399:19 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2399:23:2399:34 | ...::new(...) | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2400:9:2400:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2401:9:2401:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2403:13:2403:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:13:2403:14 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2403:26:2403:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2404:17:2404:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2404:17:2404:18 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2406:29:2406:31 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2408:9:2408:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2408:23:2408:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2408:24:2408:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2408:24:2408:25 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2413:16:2415:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2414:25:2414:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:25:2414:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2414:25:2414:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2414:38:2414:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:38:2414:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2423:19:2423:22 | SelfParam | | main.rs:2419:5:2424:5 | Self [trait MyAdd] | -| main.rs:2423:25:2423:27 | rhs | | main.rs:2419:17:2419:26 | Rhs | -| main.rs:2430:19:2430:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:25:2430:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:45:2432:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2431:13:2431:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:19:2439:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:25:2439:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2439:25:2439:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:46:2441:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2440:14:2440:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2440:14:2440:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:19:2448:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:25:2448:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2448:46:2454:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:16:2449:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2463:19:2463:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:19:2463:22 | SelfParam | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:25:2463:29 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:25:2463:29 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:54:2465:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:16:2464:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:16:2464:19 | self | T | main.rs:2459:10:2459:17 | T | -| main.rs:2464:31:2464:35 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:31:2464:35 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2472:19:2472:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2472:19:2472:22 | SelfParam | T | main.rs:2468:10:2468:17 | T | -| main.rs:2472:25:2472:29 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2472:51:2474:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:16:2473:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:16:2473:19 | self | T | main.rs:2468:10:2468:17 | T | -| main.rs:2473:31:2473:35 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2484:19:2484:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2484:19:2484:22 | SelfParam | T | main.rs:2477:14:2477:14 | T | -| main.rs:2484:25:2484:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2484:25:2484:29 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2484:55:2486:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:16:2485:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:16:2485:19 | self | T | main.rs:2477:14:2477:14 | T | -| main.rs:2485:31:2485:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2485:31:2485:35 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2491:20:2491:24 | value | | main.rs:2489:18:2489:18 | T | -| main.rs:2496:20:2496:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2496:40:2498:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2497:13:2497:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:20:2503:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2503:41:2509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:16:2504:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2514:21:2514:25 | value | | main.rs:2512:19:2512:19 | T | -| main.rs:2514:31:2514:31 | x | | main.rs:2512:5:2515:5 | Self [trait MyFrom2] | -| main.rs:2519:21:2519:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:33:2519:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:48:2521:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2520:13:2520:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:21:2526:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2526:34:2526:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:49:2532:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2527:16:2527:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2537:15:2537:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2540:15:2540:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2545:15:2545:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:31:2547:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:13:2546:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:15:2550:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:32:2552:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:13:2551:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2557:15:2557:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2557:31:2559:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2562:15:2562:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2562:32:2564:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2563:13:2563:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2567:16:2592:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2568:13:2568:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:18:2569:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:18:2570:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2570:19:2570:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:9:2571:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:18:2571:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2573:11:2573:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:26:2573:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:11:2574:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:24:2574:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:11:2575:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:24:2575:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2575:25:2575:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:17:2577:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:30:2577:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:13:2578:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:17:2578:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:30:2578:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2579:13:2579:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:38:2579:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:9:2580:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2580:23:2580:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:30:2580:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:9:2581:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2581:23:2581:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2581:29:2581:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:9:2582:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2582:27:2582:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:34:2582:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:17:2584:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:17:2585:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2586:9:2586:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2586:18:2586:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:18:2587:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2588:9:2588:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:25:2588:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2590:9:2590:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2590:25:2590:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2591:25:2591:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2599:26:2601:9 | { ... } | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2600:13:2600:25 | MyCallable {...} | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:17:2603:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2603:17:2603:21 | SelfParam | TRef | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:31:2605:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2608:16:2715:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:9:2611:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:18:2611:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2611:28:2611:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:9:2612:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:18:2612:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2612:43:2612:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:9:2613:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:18:2613:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2613:40:2613:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2615:13:2615:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:21:2615:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:22:2615:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:9:2616:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2616:18:2616:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2616:24:2616:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2618:13:2618:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:21:2618:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:22:2618:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2619:9:2619:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2619:18:2619:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2619:24:2619:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2621:13:2621:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:13:2621:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:31:2621:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2622:9:2622:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2622:18:2622:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2622:18:2622:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:24:2622:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2624:13:2624:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:13:2624:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:31:2624:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:9:2625:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:18:2625:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:18:2625:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2625:24:2625:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:17:2627:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:28:2627:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:29:2627:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:29:2627:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:36:2627:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:36:2627:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:43:2627:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:43:2627:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:9:2628:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:18:2628:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2628:19:2628:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:28:2628:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:9:2629:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:18:2629:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2629:23:2629:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:32:2629:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:9:2630:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:18:2630:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2630:27:2630:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2632:13:2632:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:9:2637:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2634:13:2634:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2634:26:2634:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2634:26:2634:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2635:13:2635:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2635:26:2635:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2635:26:2635:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2636:13:2636:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2636:26:2636:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2636:26:2636:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2638:9:2638:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2638:18:2638:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:27:2638:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2640:13:2640:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2641:9:2645:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2641:10:2645:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2642:13:2642:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2642:26:2642:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2642:26:2642:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:13:2643:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2643:26:2643:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2643:26:2643:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2644:13:2644:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2644:26:2644:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2644:26:2644:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2646:9:2646:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2646:18:2646:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2646:27:2646:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2648:13:2648:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:25:2648:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:26:2648:42 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:45:2648:61 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:64:2648:80 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2649:9:2653:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2650:12:2650:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2651:9:2653:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:9:2657:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:18:2657:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:24:2657:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:9:2658:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:18:2658:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2658:19:2658:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:19:2658:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:28:2658:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2659:13:2659:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:21:2659:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2660:9:2660:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:18:2660:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2660:24:2660:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2661:13:2661:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:26:2661:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:9:2662:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2662:18:2662:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2662:19:2662:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:20:2662:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:26:2662:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:32:2662:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:38:2662:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:50:2662:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2664:13:2664:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2665:9:2668:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2666:20:2666:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2667:18:2667:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:9:2669:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2669:18:2669:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2669:25:2669:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2068:44:2068:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:24:2073:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:24:2073:28 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:31:2073:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2073:31:2073:35 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:75:2075:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2073:75:2075:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2074:14:2074:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:14:2074:17 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:23:2074:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:23:2074:26 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:43:2074:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2074:45:2074:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:45:2074:49 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:55:2074:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:55:2074:59 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:15:2077:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2077:15:2077:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:22:2077:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2077:22:2077:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:44:2079:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:13:2078:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:13:2078:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:22:2078:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:22:2078:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:33:2078:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:33:2078:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:33:2078:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:42:2078:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:42:2078:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:15:2081:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:15:2081:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:22:2081:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2081:22:2081:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:44:2083:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:13:2082:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:13:2082:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:23:2082:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:23:2082:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:34:2082:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:34:2082:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:34:2082:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:44:2082:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:44:2082:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:15:2085:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:15:2085:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:22:2085:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2085:22:2085:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:44:2087:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:13:2086:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:13:2086:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:22:2086:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:22:2086:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:33:2086:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:33:2086:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:33:2086:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:42:2086:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:42:2086:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:15:2089:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2089:15:2089:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:22:2089:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2089:22:2089:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:44:2091:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:13:2090:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:13:2090:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:23:2090:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:23:2090:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:34:2090:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:34:2090:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:34:2090:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:44:2090:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:44:2090:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2094:26:2094:26 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2094:32:2094:32 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:9:2095:9 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:13:2095:13 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2098:16:2229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2102:23:2102:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2102:31:2102:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:23:2103:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:31:2103:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:23:2104:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:30:2104:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:23:2105:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:31:2105:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:23:2106:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:30:2106:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:23:2107:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:32:2107:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:23:2110:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:31:2110:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:23:2111:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:31:2111:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:23:2112:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:31:2112:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:23:2113:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:31:2113:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:23:2114:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:31:2114:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:39:2115:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:45:2115:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:17:2118:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:34:2118:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:9:2119:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:27:2119:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:17:2121:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:34:2121:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:9:2122:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:27:2122:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:17:2124:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:34:2124:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:9:2125:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:27:2125:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:17:2127:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:34:2127:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:9:2128:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:27:2128:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:17:2130:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:34:2130:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:9:2131:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:27:2131:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:26:2134:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:34:2134:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:25:2135:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:33:2135:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:26:2136:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:34:2136:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:23:2137:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:32:2137:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:23:2138:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:32:2138:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:17:2141:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:37:2141:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:9:2142:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:30:2142:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:17:2144:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:36:2144:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:9:2145:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:29:2145:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:17:2147:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:37:2147:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:9:2148:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:30:2148:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:17:2150:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:34:2150:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:9:2151:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:28:2151:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:17:2153:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:34:2153:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:9:2154:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:28:2154:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:24:2156:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:24:2157:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2160:13:2160:14 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2160:18:2160:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:13:2161:14 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:18:2161:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2164:23:2164:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2164:29:2164:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:23:2165:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:29:2165:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:23:2166:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:28:2166:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:23:2167:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:29:2167:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:23:2168:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:28:2168:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:23:2169:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:29:2169:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:24:2172:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:29:2172:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:24:2173:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:29:2173:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:24:2174:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:29:2174:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:24:2175:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:29:2175:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:24:2176:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:29:2176:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:17:2179:31 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:35:2179:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:9:2180:23 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:28:2180:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:17:2182:31 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:35:2182:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:9:2183:23 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:28:2183:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:17:2185:31 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:35:2185:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:9:2186:23 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:28:2186:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:17:2188:31 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:35:2188:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:9:2189:23 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:28:2189:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:17:2191:31 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:35:2191:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:9:2192:23 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:28:2192:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:27:2195:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:32:2195:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:26:2196:27 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:31:2196:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:27:2197:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:32:2197:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:24:2198:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:30:2198:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2199:24:2199:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:30:2199:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2202:17:2202:34 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2202:38:2202:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:9:2203:26 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:31:2203:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:17:2205:33 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:37:2205:38 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:9:2206:25 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:30:2206:31 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:17:2208:34 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:38:2208:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:9:2209:26 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:31:2209:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:17:2211:31 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:35:2211:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:9:2212:23 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:29:2212:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2214:17:2214:31 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2214:35:2214:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:9:2215:23 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:29:2215:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2218:25:2218:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:25:2219:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:30:2223:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2228:30:2228:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2238:18:2238:21 | SelfParam | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2238:24:2238:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2241:25:2243:5 | { ... } | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2246:9:2246:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRefMut | main.rs:2253:5:2253:14 | S2 | +| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2260:13:2260:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | +| main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | +| main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2271:9:2271:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2271:9:2271:12 | f1(...) | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2272:9:2272:12 | f2(...) | | main.rs:2245:16:2245:39 | impl ... | +| main.rs:2273:9:2273:12 | f3(...) | | main.rs:2249:16:2249:39 | impl ... | +| main.rs:2274:9:2274:12 | f4(...) | | main.rs:2266:16:2266:39 | impl ... | +| main.rs:2276:13:2276:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2276:17:2276:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2277:9:2277:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2288:15:2288:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2288:15:2288:19 | SelfParam | TRef | main.rs:2287:5:2289:5 | Self [trait Trait1] | +| main.rs:2288:22:2288:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2292:15:2292:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2292:15:2292:19 | SelfParam | TRef | main.rs:2291:5:2293:5 | Self [trait Trait2] | +| main.rs:2292:22:2292:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2296:15:2296:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2296:15:2296:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2296:22:2296:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2300:15:2300:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2300:15:2300:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2300:22:2300:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2308:18:2308:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2308:18:2308:22 | SelfParam | TRef | main.rs:2307:5:2309:5 | Self [trait MyTrait] | +| main.rs:2312:18:2312:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2312:18:2312:22 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2312:31:2314:9 | { ... } | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2318:18:2318:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2318:18:2318:22 | SelfParam | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2318:18:2318:22 | SelfParam | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2318:30:2321:9 | { ... } | | main.rs:2317:10:2317:17 | T | +| main.rs:2319:25:2319:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2319:25:2319:28 | self | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:25:2319:28 | self | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2328:41:2328:41 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2328:52:2330:5 | { ... } | | main.rs:2328:23:2328:23 | A | +| main.rs:2329:9:2329:9 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2332:34:2332:34 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2332:59:2334:5 | { ... } | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2332:59:2334:5 | { ... } | impl(T) | main.rs:2332:24:2332:31 | T | +| main.rs:2333:12:2333:12 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2336:34:2336:34 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2336:67:2338:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2336:67:2338:5 | { ... } | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2336:67:2338:5 | { ... } | T.impl(T) | main.rs:2336:24:2336:31 | T | +| main.rs:2337:17:2337:17 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2340:34:2340:34 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2340:78:2342:5 | { ... } | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T0.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T1.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2341:13:2341:13 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2341:28:2341:28 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2344:26:2344:26 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2344:51:2346:5 | { ... } | | main.rs:2344:23:2344:23 | A | +| main.rs:2345:9:2345:9 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2348:16:2362:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2349:13:2349:13 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2349:17:2349:20 | f1(...) | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2350:9:2350:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2351:9:2351:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2352:13:2352:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2352:17:2352:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2353:32:2353:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:13:2354:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:17:2354:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2355:32:2355:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2372:16:2372:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2372:16:2372:20 | SelfParam | TRef | main.rs:2368:5:2369:13 | S | +| main.rs:2372:31:2374:9 | { ... } | | main.rs:2368:5:2369:13 | S | +| main.rs:2383:26:2385:9 | { ... } | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2383:26:2385:9 | { ... } | T | main.rs:2382:10:2382:10 | T | +| main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut.T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2388:13:2388:16 | self | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2388:13:2388:16 | self | TRefMut.T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2396:18:2396:22 | SelfParam | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2396:25:2396:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2396:56:2398:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2396:56:2398:9 | { ... } | TRef | main.rs:2392:10:2392:10 | T | +| main.rs:2397:13:2397:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2397:14:2397:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2397:14:2397:17 | self | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2397:14:2397:17 | self | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2397:24:2397:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2401:22:2401:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2401:22:2401:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2401:22:2401:26 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2401:35:2403:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:17:2402:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2402:17:2402:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2402:17:2402:21 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2405:37:2405:37 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2405:43:2405:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2409:9:2409:9 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2409:11:2409:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2412:16:2423:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2413:17:2413:19 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2413:23:2413:34 | ...::new(...) | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2414:9:2414:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2415:9:2415:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2417:13:2417:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:13:2417:14 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2417:26:2417:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2418:17:2418:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2418:17:2418:18 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2420:29:2420:31 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2422:9:2422:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2422:23:2422:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2422:24:2422:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2422:24:2422:25 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2427:16:2429:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2428:25:2428:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:25:2428:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2428:25:2428:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2428:38:2428:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:38:2428:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2437:19:2437:22 | SelfParam | | main.rs:2433:5:2438:5 | Self [trait MyAdd] | +| main.rs:2437:25:2437:27 | rhs | | main.rs:2433:17:2433:26 | Rhs | +| main.rs:2444:19:2444:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:25:2444:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:45:2446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2445:13:2445:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:19:2453:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:25:2453:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2453:25:2453:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:46:2455:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:14:2454:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2454:14:2454:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:19:2462:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:25:2462:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2462:46:2468:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:16:2463:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2477:19:2477:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:19:2477:22 | SelfParam | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:25:2477:29 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:25:2477:29 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:54:2479:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:16:2478:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:16:2478:19 | self | T | main.rs:2473:10:2473:17 | T | +| main.rs:2478:31:2478:35 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:31:2478:35 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2486:19:2486:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2486:19:2486:22 | SelfParam | T | main.rs:2482:10:2482:17 | T | +| main.rs:2486:25:2486:29 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2486:51:2488:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:16:2487:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:16:2487:19 | self | T | main.rs:2482:10:2482:17 | T | +| main.rs:2487:31:2487:35 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2498:19:2498:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2498:19:2498:22 | SelfParam | T | main.rs:2491:14:2491:14 | T | +| main.rs:2498:25:2498:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2498:25:2498:29 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2498:55:2500:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:16:2499:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:16:2499:19 | self | T | main.rs:2491:14:2491:14 | T | +| main.rs:2499:31:2499:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2499:31:2499:35 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2505:20:2505:24 | value | | main.rs:2503:18:2503:18 | T | +| main.rs:2510:20:2510:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:40:2512:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2511:13:2511:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2517:20:2517:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2517:41:2523:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:16:2518:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2528:21:2528:25 | value | | main.rs:2526:19:2526:19 | T | +| main.rs:2528:31:2528:31 | x | | main.rs:2526:5:2529:5 | Self [trait MyFrom2] | +| main.rs:2533:21:2533:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:33:2533:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:48:2535:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2534:13:2534:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:21:2540:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2540:34:2540:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:49:2546:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2541:16:2541:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2551:15:2551:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2554:15:2554:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2559:15:2559:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2559:31:2561:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2564:15:2564:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2564:32:2566:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:13:2565:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2571:15:2571:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2571:31:2573:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:15:2576:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2576:32:2578:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2581:16:2606:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2582:13:2582:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:18:2583:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:18:2584:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2584:19:2584:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2587:11:2587:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:26:2587:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:11:2588:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:24:2588:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:11:2589:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:24:2589:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2589:25:2589:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:13:2591:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:17:2591:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:30:2591:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:13:2592:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:17:2592:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:30:2592:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2593:13:2593:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:38:2593:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:9:2594:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2594:23:2594:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:30:2594:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:9:2595:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2595:23:2595:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2595:29:2595:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:9:2596:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2596:27:2596:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:34:2596:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:9:2598:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:17:2598:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:9:2599:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:17:2599:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:9:2600:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:18:2600:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:9:2601:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:18:2601:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2602:9:2602:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2602:25:2602:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:25:2603:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:9:2604:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:25:2604:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2605:25:2605:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2613:26:2615:9 | { ... } | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2614:13:2614:25 | MyCallable {...} | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:17:2617:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2617:17:2617:21 | SelfParam | TRef | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:31:2619:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2622:16:2729:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:9:2625:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:18:2625:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2625:28:2625:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:9:2626:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:18:2626:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:43:2626:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:9:2627:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:18:2627:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:40:2627:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:13:2629:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:21:2629:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:22:2629:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:9:2630:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2630:18:2630:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2630:24:2630:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2632:13:2632:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:21:2632:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:22:2632:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2633:9:2633:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2633:18:2633:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2633:24:2633:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2635:13:2635:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:13:2635:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:31:2635:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2636:9:2636:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2636:18:2636:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2636:18:2636:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:24:2636:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2638:13:2638:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2638:13:2638:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:31:2638:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:9:2639:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2639:18:2639:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:18:2639:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2639:24:2639:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2641:17:2641:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:28:2641:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:29:2641:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:29:2641:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:36:2641:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:36:2641:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:43:2641:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:43:2641:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:9:2642:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2642:18:2642:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:18:2644:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2644:27:2644:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2646:13:2646:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:9:2651:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2648:13:2648:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2648:26:2648:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2648:26:2648:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2649:13:2649:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2649:26:2649:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2649:26:2649:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2650:13:2650:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2650:26:2650:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2650:26:2650:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2652:9:2652:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2652:18:2652:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2652:27:2652:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2654:13:2654:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2655:9:2659:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2655:10:2659:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2656:13:2656:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2656:26:2656:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2656:26:2656:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2657:13:2657:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2657:26:2657:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2657:26:2657:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2658:13:2658:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2658:26:2658:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2658:26:2658:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2660:9:2660:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2660:18:2660:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2660:27:2660:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2662:13:2662:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:25:2662:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:26:2662:42 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:45:2662:61 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:64:2662:80 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2663:9:2667:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2664:12:2664:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2665:9:2667:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2671:9:2671:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2671:18:2671:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2671:24:2671:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:9:2672:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:18:2672:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2672:19:2672:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:19:2672:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2672:28:2672:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2673:21:2673:25 | 0..10 | | {EXTERNAL LOCATION} | Range | | main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2674:18:2674:22 | range | | {EXTERNAL LOCATION} | Range | | main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:13:2676:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:13:2676:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:13:2676:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:32:2676:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2676:33:2676:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:9:2677:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2677:18:2677:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2677:18:2677:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2677:18:2677:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:25:2677:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2679:22:2679:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2679:23:2679:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2680:9:2680:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2680:25:2680:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2682:13:2682:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:21:2682:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:31:2682:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2682:32:2682:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2683:9:2683:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2683:18:2683:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2683:24:2683:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2685:13:2685:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:13:2685:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:13:2685:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:13:2685:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:32:2685:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2685:33:2685:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:9:2686:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2686:18:2686:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2686:18:2686:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2686:18:2686:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2686:18:2686:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:24:2686:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:17:2688:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:17:2688:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:25:2688:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:25:2688:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:9:2689:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2689:9:2689:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:20:2689:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:9:2690:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2690:18:2690:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:18:2690:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:24:2690:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:17:2697:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:13:2696:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:29:2696:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2699:17:2699:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:17:2699:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:24:2699:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:24:2699:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2700:9:2700:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2700:9:2700:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2700:24:2700:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2700:24:2700:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:33:2700:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2700:33:2700:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2701:9:2701:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2701:24:2701:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2701:24:2701:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:33:2701:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2701:33:2701:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:9:2702:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:20:2702:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2702:20:2702:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2702:32:2702:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:9:2703:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:22:2703:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2703:22:2703:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2703:36:2703:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:9:2704:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:13:2704:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2704:29:2704:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:29:2704:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:41:2704:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:9:2705:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:13:2705:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2705:29:2705:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2705:30:2705:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2705:30:2705:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2705:35:2705:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:17:2709:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:17:2714:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2711:23:2711:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2712:9:2714:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2713:13:2713:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2725:40:2727:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2725:40:2727:9 | { ... } | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2725:40:2727:9 | { ... } | T.T | main.rs:2724:10:2724:19 | T | -| main.rs:2729:30:2731:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2729:30:2731:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2733:19:2733:22 | SelfParam | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:19:2733:22 | SelfParam | T | main.rs:2724:10:2724:19 | T | -| main.rs:2733:33:2735:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:33:2735:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2734:13:2734:16 | self | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2734:13:2734:16 | self | T | main.rs:2724:10:2724:19 | T | -| main.rs:2746:15:2746:15 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2746:26:2748:5 | { ... } | | main.rs:2746:12:2746:12 | T | -| main.rs:2747:9:2747:9 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2750:16:2772:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2751:13:2751:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:13:2751:14 | x1 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2751:13:2751:14 | x1 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:13:2752:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:13:2752:14 | x2 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:13:2752:14 | x2 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:13:2753:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:13:2753:14 | x3 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:13:2753:14 | x3 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:13:2754:14 | x4 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:13:2754:14 | x4 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:18:2754:48 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:18:2754:48 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:35:2754:47 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:13:2755:14 | x5 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:13:2755:14 | x5 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:18:2755:42 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:18:2755:42 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:29:2755:41 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2759:21:2759:33 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:13:2760:15 | x10 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:13:2760:15 | x10 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:13:2764:15 | x11 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2764:19:2764:34 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:13:2765:15 | x12 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:19:2765:33 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:13:2766:15 | x13 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:19:2769:9 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2768:20:2768:32 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2770:13:2770:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:19:2770:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:13:2771:15 | x15 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:13:2771:15 | x15 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2771:19:2771:37 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:19:2771:37 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2780:35:2782:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2780:35:2782:9 | { ... } | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2780:35:2782:9 | { ... } | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:13:2781:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2781:14:2781:18 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:21:2781:25 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:16:2783:19 | SelfParam | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:22:2783:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2786:16:2820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2787:13:2787:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:13:2787:13 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:13:2787:13 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:17:2788:17 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:13:2789:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:13:2790:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:13:2791:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2793:9:2793:9 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2794:9:2794:9 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:9 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2807:13:2807:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:20:2807:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:13:2808:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:22:2808:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2809:13:2809:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2809:23:2809:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:20:2811:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2813:13:2813:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2813:30:2813:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2813:30:2813:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2813:30:2813:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2813:30:2813:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2814:25:2814:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2814:25:2814:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2818:13:2818:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2818:17:2818:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2825:27:2847:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2826:13:2826:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:13:2826:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:27:2826:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:27:2826:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:36:2826:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:15:2829:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2829:15:2829:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2830:24:2832:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2831:26:2831:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2833:22:2836:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2835:26:2835:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:13:2840:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:26:2840:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:26:2840:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:35:2840:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:35:2840:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:44:2840:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2841:15:2841:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2841:15:2841:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2842:26:2845:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2844:26:2844:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2856:36:2858:9 | { ... } | | main.rs:2853:5:2853:22 | Path | -| main.rs:2857:13:2857:19 | Path {...} | | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:29:2860:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2860:29:2860:33 | SelfParam | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:59:2862:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2860:59:2862:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2860:59:2862:9 | { ... } | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2861:16:2861:29 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2868:39:2870:9 | { ... } | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2869:13:2869:22 | PathBuf {...} | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:18:2878:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2878:18:2878:22 | SelfParam | TRef | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:34:2882:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2878:34:2882:9 | { ... } | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2880:33:2880:43 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2881:13:2881:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2885:16:2893:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2886:13:2886:17 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2886:21:2886:31 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2887:21:2887:25 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2890:13:2890:20 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2890:24:2890:37 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2891:24:2891:31 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2898:14:2898:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2898:14:2898:18 | SelfParam | TRef | main.rs:2897:5:2899:5 | Self [trait MyTrait] | -| main.rs:2905:14:2905:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2905:14:2905:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2905:14:2905:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:28:2907:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2906:13:2906:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2906:13:2906:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2906:13:2906:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:14:2911:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2911:14:2911:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:28:2913:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2912:13:2912:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2917:15:2917:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2917:15:2917:19 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2917:15:2917:19 | SelfParam | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2917:33:2919:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:17:2918:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2918:17:2918:20 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2918:17:2918:20 | self | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2922:14:2922:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2922:48:2939:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2922:48:2939:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2922:48:2939:5 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2922:48:2939:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:20:2923:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2933:12:2933:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2935:13:2935:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2935:13:2935:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2937:13:2937:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2937:13:2937:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2943:22:2947:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2944:18:2944:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:33:2946:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:13:2945:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2952:11:2952:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2952:30:2960:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2955:13:2957:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2955:16:2955:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2955:21:2957:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2963:20:2970:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2968:18:2968:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2968:18:2968:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2972:20:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:11:2977:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2977:30:2985:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2978:13:2978:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2978:17:2982:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2979:13:2981:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2979:16:2979:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2979:21:2981:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2983:18:2983:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2983:18:2983:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:29:2983:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2989:16:3036:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2991:13:2991:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:13:2991:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2995:26:2995:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:2995:26:2995:28 | opt | T | main.rs:2995:23:2995:23 | T | -| main.rs:2995:42:2995:42 | x | | main.rs:2995:23:2995:23 | T | -| main.rs:2995:48:2995:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2998:9:2998:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3005:13:3005:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3005:17:3005:39 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:13:3006:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:13:3006:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:13:3006:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:40:3006:40 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:13:3007:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:13:3007:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:17:3007:52 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:17:3007:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3009:13:3009:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:13:3009:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3010:20:3010:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3013:29:3013:29 | e | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3013:29:3013:29 | e | T1 | main.rs:3013:26:3013:26 | T | -| main.rs:3013:29:3013:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3013:53:3013:53 | x | | main.rs:3013:26:3013:26 | T | -| main.rs:3013:59:3013:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3016:13:3016:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3016:17:3018:9 | ...::B {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3017:20:3017:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3019:9:3019:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3019:23:3019:23 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3022:13:3022:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:13:3022:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:13:3022:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3026:29:3026:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3026:29:3026:31 | res | E | main.rs:3026:26:3026:26 | E | -| main.rs:3026:29:3026:31 | res | T | main.rs:3026:23:3026:23 | T | -| main.rs:3026:48:3026:48 | x | | main.rs:3026:26:3026:26 | E | -| main.rs:3026:54:3026:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3029:9:3029:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3029:23:3029:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3031:17:3031:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:17:3031:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:21:3031:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:21:3031:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3032:9:3032:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3032:9:3032:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3035:9:3035:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3035:9:3035:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3044:11:3079:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3045:5:3045:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3046:5:3046:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:5:3047:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:20:3047:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:41:3047:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3048:5:3048:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3049:5:3049:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3050:5:3050:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3051:5:3051:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3052:5:3052:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3053:5:3053:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3054:5:3054:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3055:5:3055:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3056:5:3056:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3057:5:3057:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3058:5:3058:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3059:5:3059:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3060:5:3060:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3061:5:3061:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3062:5:3062:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3063:5:3063:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3064:5:3064:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3064:5:3064:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3065:5:3065:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3066:5:3066:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3067:5:3067:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3068:5:3068:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3069:5:3069:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3070:5:3070:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3071:5:3071:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3072:5:3072:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3073:5:3073:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3074:5:3074:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3075:5:3075:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3076:5:3076:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3077:5:3077:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3077:5:3077:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3077:5:3077:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3077:5:3077:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3077:16:3077:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3078:5:3078:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2675:13:2675:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2675:26:2675:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:9:2676:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2676:18:2676:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2676:19:2676:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2676:20:2676:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:26:2676:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:32:2676:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:38:2676:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:50:2676:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2678:13:2678:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2679:9:2682:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2680:20:2680:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2681:18:2681:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:9:2683:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2683:18:2683:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2683:25:2683:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2688:9:2688:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2688:24:2688:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2690:13:2690:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2690:13:2690:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:13:2690:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:32:2690:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2690:33:2690:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:9:2691:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2691:18:2691:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:18:2691:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2691:18:2691:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:25:2691:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2693:22:2693:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2693:23:2693:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2694:9:2694:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:25:2694:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2696:13:2696:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:21:2696:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:31:2696:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2696:32:2696:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2697:9:2697:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2697:18:2697:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2697:24:2697:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2699:13:2699:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2699:13:2699:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:13:2699:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:32:2699:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2699:33:2699:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:9:2700:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2700:18:2700:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2700:18:2700:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2700:18:2700:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2700:18:2700:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:24:2700:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:17:2702:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:17:2702:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:25:2702:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:25:2702:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:9:2703:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2703:9:2703:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:20:2703:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:9:2704:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2704:18:2704:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2704:18:2704:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2704:24:2704:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2708:17:2711:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:13:2710:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:29:2710:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2713:17:2713:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:17:2713:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2713:24:2713:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:24:2713:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2714:9:2714:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2714:9:2714:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2714:24:2714:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2714:24:2714:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:33:2714:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2714:33:2714:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:9:2715:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2715:9:2715:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2715:24:2715:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2715:24:2715:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:33:2715:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2715:33:2715:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:9:2716:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2716:20:2716:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2716:20:2716:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2716:32:2716:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:9:2717:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:22:2717:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2717:22:2717:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2717:36:2717:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:9:2718:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:13:2718:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2718:29:2718:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2718:29:2718:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2718:41:2718:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:9:2719:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:13:2719:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2719:29:2719:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2719:30:2719:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2719:30:2719:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2719:35:2719:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2723:17:2723:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2725:17:2728:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2725:23:2725:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2726:9:2728:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2727:13:2727:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2739:40:2741:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2739:40:2741:9 | { ... } | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2739:40:2741:9 | { ... } | T.T | main.rs:2738:10:2738:19 | T | +| main.rs:2743:30:2745:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2743:30:2745:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2747:19:2747:22 | SelfParam | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:19:2747:22 | SelfParam | T | main.rs:2738:10:2738:19 | T | +| main.rs:2747:33:2749:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:33:2749:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2748:13:2748:16 | self | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2748:13:2748:16 | self | T | main.rs:2738:10:2738:19 | T | +| main.rs:2760:15:2760:15 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2760:26:2762:5 | { ... } | | main.rs:2760:12:2760:12 | T | +| main.rs:2761:9:2761:9 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2764:16:2786:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2765:13:2765:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:13:2765:14 | x1 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2765:13:2765:14 | x1 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:13:2766:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:13:2766:14 | x2 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:13:2766:14 | x2 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:13:2767:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:13:2767:14 | x3 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:13:2767:14 | x3 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:13:2768:14 | x4 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:13:2768:14 | x4 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:18:2768:48 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:18:2768:48 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:35:2768:47 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:13:2769:14 | x5 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:13:2769:14 | x5 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:18:2769:42 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:18:2769:42 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:29:2769:41 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2773:21:2773:33 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:13:2774:15 | x10 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:13:2774:15 | x10 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:13:2778:15 | x11 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2778:19:2778:34 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:13:2779:15 | x12 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:19:2779:33 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:13:2780:15 | x13 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:19:2783:9 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2782:20:2782:32 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2784:13:2784:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:19:2784:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:13:2785:15 | x15 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:13:2785:15 | x15 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2785:19:2785:37 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:19:2785:37 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2794:35:2796:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2794:35:2796:9 | { ... } | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2794:35:2796:9 | { ... } | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:13:2795:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2795:14:2795:18 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:21:2795:25 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:16:2797:19 | SelfParam | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:22:2797:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2800:16:2834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2801:13:2801:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:13:2801:13 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:13:2801:13 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:17:2802:17 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:13:2803:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:13:2804:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:13:2805:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2807:9:2807:9 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2808:9:2808:9 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:9 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2821:13:2821:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2821:20:2821:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2822:13:2822:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2822:22:2822:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2823:13:2823:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2823:23:2823:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2825:20:2825:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2827:13:2827:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2827:30:2827:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2827:30:2827:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2827:30:2827:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2827:30:2827:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2828:25:2828:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2828:25:2828:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2832:13:2832:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2832:17:2832:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2839:27:2861:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2840:13:2840:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:13:2840:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:27:2840:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:27:2840:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:36:2840:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2843:15:2843:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2843:15:2843:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:26:2854:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:26:2854:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:35:2854:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:35:2854:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:44:2854:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2855:15:2855:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2855:15:2855:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | +| main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2874:29:2874:33 | SelfParam | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:59:2876:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2874:59:2876:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2874:59:2876:9 | { ... } | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2875:16:2875:29 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2882:39:2884:9 | { ... } | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2883:13:2883:22 | PathBuf {...} | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:18:2892:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2892:18:2892:22 | SelfParam | TRef | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:34:2896:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2892:34:2896:9 | { ... } | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2894:33:2894:43 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2895:13:2895:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2899:16:2907:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2900:13:2900:17 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2900:21:2900:31 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2901:21:2901:25 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2904:13:2904:20 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2904:24:2904:37 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2912:14:2912:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2912:14:2912:18 | SelfParam | TRef | main.rs:2911:5:2913:5 | Self [trait MyTrait] | +| main.rs:2919:14:2919:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2919:14:2919:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2919:14:2919:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2919:28:2921:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2920:13:2920:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2920:13:2920:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2920:13:2920:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:14:2925:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2925:14:2925:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:28:2927:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2926:13:2926:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:15:2931:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2931:15:2931:19 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2931:15:2931:19 | SelfParam | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2931:33:2933:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:17:2932:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2932:17:2932:20 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2932:17:2932:20 | self | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2936:14:2936:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2936:48:2953:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2936:48:2953:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2936:48:2953:5 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2936:48:2953:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:20:2937:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2947:12:2947:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2949:13:2949:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2949:13:2949:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2951:13:2951:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2951:13:2951:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2957:22:2961:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2958:18:2958:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2958:33:2960:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:13:2959:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2966:11:2966:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2966:30:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2969:13:2971:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2969:16:2969:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2969:21:2971:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2991:11:2991:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2991:30:2999:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2992:13:2992:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2992:17:2996:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2993:13:2995:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3005:13:3005:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3005:13:3005:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3009:26:3009:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:3009:26:3009:28 | opt | T | main.rs:3009:23:3009:23 | T | +| main.rs:3009:42:3009:42 | x | | main.rs:3009:23:3009:23 | T | +| main.rs:3009:48:3009:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3012:9:3012:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3019:13:3019:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3019:17:3019:39 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:13:3020:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:13:3020:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3020:40:3020:40 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:13:3021:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:13:3021:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:17:3021:52 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:17:3021:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3023:13:3023:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:13:3023:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3024:20:3024:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3027:29:3027:29 | e | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3027:29:3027:29 | e | T1 | main.rs:3027:26:3027:26 | T | +| main.rs:3027:29:3027:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3027:53:3027:53 | x | | main.rs:3027:26:3027:26 | T | +| main.rs:3027:59:3027:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3030:13:3030:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3030:17:3032:9 | ...::B {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3031:20:3031:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3033:9:3033:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3033:23:3033:23 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3036:13:3036:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3036:13:3036:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3036:13:3036:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3040:29:3040:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:3040:29:3040:31 | res | E | main.rs:3040:26:3040:26 | E | +| main.rs:3040:29:3040:31 | res | T | main.rs:3040:23:3040:23 | T | +| main.rs:3040:48:3040:48 | x | | main.rs:3040:26:3040:26 | E | +| main.rs:3040:54:3040:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3043:9:3043:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3043:23:3043:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:3045:17:3045:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:17:3045:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3045:21:3045:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:21:3045:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3046:9:3046:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3046:9:3046:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3049:9:3049:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3049:9:3049:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3056:14:3056:17 | SelfParam | | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:14:3059:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3059:14:3059:18 | SelfParam | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:21:3059:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3059:21:3059:25 | other | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:44:3061:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3059:44:3061:9 | { ... } | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3060:13:3060:16 | self | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:14:3073:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:28:3075:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3074:13:3074:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3080:14:3080:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3080:14:3080:17 | SelfParam | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3080:28:3082:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3080:28:3082:9 | { ... } | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3081:13:3081:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3081:13:3081:16 | self | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3085:25:3089:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3091:12:3099:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3092:13:3092:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3093:13:3093:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3093:17:3093:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3094:17:3094:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3094:21:3094:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3097:13:3097:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3098:23:3098:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3107:11:3142:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:5:3110:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:20:3110:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:41:3110:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3111:5:3111:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3124:5:3124:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3125:5:3125:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3126:5:3126:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3127:5:3127:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3127:5:3127:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3128:5:3128:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3129:5:3129:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3130:5:3130:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3131:5:3131:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3132:5:3132:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3133:5:3133:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3134:5:3134:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3135:5:3135:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3136:5:3136:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3137:5:3137:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3138:5:3138:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3139:5:3139:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3140:5:3140:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3140:5:3140:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3140:5:3140:20 | ...::f(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:3140:5:3140:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3140:16:3140:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3141:5:3141:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:15:5:18:5 | if ... {...} | | {EXTERNAL LOCATION} | () | @@ -3794,13 +3829,13 @@ inferCertainType | pattern_matching.rs:264:22:264:33 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:270:16:270:26 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:271:22:275:9 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:274:22:274:38 | ...::_print(...) | | {EXTERNAL LOCATION} | () | @@ -3896,9 +3931,9 @@ inferCertainType | pattern_matching.rs:338:22:338:47 | "Dereferenced binding: {}\\n" | TRef | {EXTERNAL LOCATION} | str | | pattern_matching.rs:338:22:338:60 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:342:16:342:28 | mutable_value | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | & | +| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | &mut | | pattern_matching.rs:343:18:343:18 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:343:23:346:9 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:344:17:344:29 | mut_ref_bound | | {EXTERNAL LOCATION} | & | @@ -4472,7 +4507,7 @@ inferCertainType | raw_pointer.rs:54:5:54:32 | raw_pointer_const_deref(...) | | {EXTERNAL LOCATION} | i32 | | raw_pointer.rs:54:29:54:31 | &10 | | {EXTERNAL LOCATION} | & | | raw_pointer.rs:55:5:55:36 | raw_pointer_mut_deref(...) | | {EXTERNAL LOCATION} | i32 | -| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | & | +| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | &mut | | raw_pointer.rs:55:32:55:35 | true | | {EXTERNAL LOCATION} | bool | | raw_pointer.rs:56:5:56:22 | raw_const_borrow(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:57:5:57:20 | raw_mut_borrow(...) | | {EXTERNAL LOCATION} | () | @@ -5286,8 +5321,8 @@ inferType | dereference.rs:151:16:151:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:151:27:153:9 | { ... } | | dereference.rs:147:5:147:13 | S | | dereference.rs:152:13:152:13 | S | | dereference.rs:147:5:147:13 | S | -| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:158:16:158:19 | SelfParam | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:158:16:158:19 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:158:16:158:19 | SelfParam | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:158:29:160:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:159:13:159:14 | 42 | | {EXTERNAL LOCATION} | i32 | | dereference.rs:159:13:159:14 | 42 | | {EXTERNAL LOCATION} | i64 | @@ -5299,55 +5334,45 @@ inferType | dereference.rs:169:36:171:9 | { ... } | | dereference.rs:147:5:147:13 | S | | dereference.rs:170:13:170:13 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:176:16:176:19 | SelfParam | | dereference.rs:147:5:147:13 | S | -| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | & | -| dereference.rs:176:22:176:24 | arg | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:176:22:176:24 | arg | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:176:22:176:24 | arg | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:176:42:178:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | dereference.rs:177:13:177:14 | 42 | | {EXTERNAL LOCATION} | i32 | | dereference.rs:177:13:177:14 | 42 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:181:19:188:5 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:182:13:182:13 | x | | dereference.rs:147:5:147:13 | S | -| dereference.rs:182:13:182:13 | x | | {EXTERNAL LOCATION} | i64 | | dereference.rs:182:17:182:20 | (...) | | {EXTERNAL LOCATION} | & | | dereference.rs:182:17:182:20 | (...) | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:182:17:182:26 | ... .foo() | | dereference.rs:147:5:147:13 | S | -| dereference.rs:182:17:182:26 | ... .foo() | | {EXTERNAL LOCATION} | i64 | | dereference.rs:182:18:182:19 | &S | | {EXTERNAL LOCATION} | & | | dereference.rs:182:18:182:19 | &S | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:182:19:182:19 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:183:13:183:13 | y | | dereference.rs:147:5:147:13 | S | -| dereference.rs:183:13:183:13 | y | | {EXTERNAL LOCATION} | i64 | | dereference.rs:183:17:183:17 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:183:17:183:23 | S.foo() | | dereference.rs:147:5:147:13 | S | -| dereference.rs:183:17:183:23 | S.foo() | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:184:13:184:13 | z | | dereference.rs:147:5:147:13 | S | | dereference.rs:184:13:184:13 | z | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:17:184:24 | (...) | TRef | dereference.rs:147:5:147:13 | S | -| dereference.rs:184:17:184:30 | ... .foo() | | dereference.rs:147:5:147:13 | S | +| dereference.rs:184:17:184:24 | (...) | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:184:17:184:24 | (...) | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:184:17:184:30 | ... .foo() | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | & | -| dereference.rs:184:18:184:23 | &mut S | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:184:18:184:23 | &mut S | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:184:18:184:23 | &mut S | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:184:23:184:23 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:186:13:186:13 | x | | dereference.rs:147:5:147:13 | S | -| dereference.rs:186:13:186:13 | x | | {EXTERNAL LOCATION} | i64 | | dereference.rs:186:17:186:17 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:186:17:186:25 | S.bar(...) | | dereference.rs:147:5:147:13 | S | -| dereference.rs:186:17:186:25 | S.bar(...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:186:23:186:24 | &S | | {EXTERNAL LOCATION} | & | | dereference.rs:186:23:186:24 | &S | TRef | dereference.rs:147:5:147:13 | S | | dereference.rs:186:24:186:24 | S | | dereference.rs:147:5:147:13 | S | -| dereference.rs:187:13:187:13 | y | | dereference.rs:147:5:147:13 | S | | dereference.rs:187:13:187:13 | y | | {EXTERNAL LOCATION} | i64 | | dereference.rs:187:17:187:17 | S | | dereference.rs:147:5:147:13 | S | -| dereference.rs:187:17:187:29 | S.bar(...) | | dereference.rs:147:5:147:13 | S | | dereference.rs:187:17:187:29 | S.bar(...) | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | & | -| dereference.rs:187:23:187:28 | &mut S | TRef | dereference.rs:147:5:147:13 | S | +| dereference.rs:187:23:187:28 | &mut S | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:187:23:187:28 | &mut S | TRefMut | dereference.rs:147:5:147:13 | S | | dereference.rs:187:28:187:28 | S | | dereference.rs:147:5:147:13 | S | | dereference.rs:196:16:196:20 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:196:16:196:20 | SelfParam | TRef | dereference.rs:195:5:197:5 | Self [trait Bar] | -| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| dereference.rs:201:16:201:24 | SelfParam | TRef | dereference.rs:193:5:193:17 | Foo | +| dereference.rs:201:16:201:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| dereference.rs:201:16:201:24 | SelfParam | TRefMut | dereference.rs:193:5:193:17 | Foo | | dereference.rs:201:27:203:9 | { ... } | | {EXTERNAL LOCATION} | () | | dereference.rs:202:13:202:39 | MacroExpr | | {EXTERNAL LOCATION} | () | | dereference.rs:202:22:202:38 | "In struct impl!\\n" | | {EXTERNAL LOCATION} | & | @@ -6758,4273 +6783,4350 @@ inferType | main.rs:826:13:826:13 | x | | main.rs:738:5:741:5 | MyThing | | main.rs:826:13:826:13 | x | T | main.rs:820:10:820:10 | T | | main.rs:826:13:826:15 | x.a | | main.rs:820:10:820:10 | T | -| main.rs:830:16:888:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:831:13:831:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:831:13:831:13 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:831:17:831:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:831:17:831:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:831:30:831:31 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:832:13:832:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:13:832:13 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:832:17:832:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:832:17:832:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:832:30:832:31 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:834:18:834:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:834:18:834:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:834:18:834:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:834:18:834:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:834:26:834:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:834:26:834:26 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:834:26:834:31 | x.m1() | | main.rs:743:5:744:14 | S1 | -| main.rs:835:18:835:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:835:18:835:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:835:18:835:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:835:18:835:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:835:26:835:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:835:26:835:26 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:835:26:835:31 | y.m1() | | main.rs:745:5:746:14 | S2 | -| main.rs:837:13:837:13 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:13:837:13 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:837:17:837:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:837:17:837:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:837:30:837:31 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:838:13:838:13 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:13:838:13 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:838:17:838:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:838:17:838:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:838:30:838:31 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:840:18:840:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:840:18:840:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:840:18:840:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:840:18:840:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:840:26:840:26 | x | | main.rs:738:5:741:5 | MyThing | -| main.rs:840:26:840:26 | x | T | main.rs:743:5:744:14 | S1 | -| main.rs:840:26:840:31 | x.m2() | | main.rs:743:5:744:14 | S1 | -| main.rs:841:18:841:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:841:18:841:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:841:18:841:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:841:18:841:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:841:26:841:26 | y | | main.rs:738:5:741:5 | MyThing | -| main.rs:841:26:841:26 | y | T | main.rs:745:5:746:14 | S2 | -| main.rs:841:26:841:31 | y.m2() | | main.rs:745:5:746:14 | S2 | -| main.rs:843:13:843:14 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:13:843:14 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:843:18:843:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:843:18:843:34 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:843:31:843:32 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:844:13:844:14 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:13:844:14 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:844:18:844:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:844:18:844:34 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:844:31:844:32 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:846:13:846:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:846:17:846:33 | call_trait_m1(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:846:31:846:32 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:846:31:846:32 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:847:18:847:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:847:18:847:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:847:18:847:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:847:18:847:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:847:26:847:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:848:13:848:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:848:17:848:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:848:33:848:34 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:848:33:848:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:832:15:832:18 | SelfParam | | main.rs:830:5:833:5 | Self [trait MyTrait2] | +| main.rs:837:15:837:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:837:15:837:19 | SelfParam | TRef | main.rs:835:5:838:5 | Self [trait MyTrait3] | +| main.rs:840:46:840:46 | x | | main.rs:840:22:840:43 | T | +| main.rs:840:52:840:52 | y | | {EXTERNAL LOCATION} | & | +| main.rs:840:52:840:52 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:840:59:843:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:841:9:841:9 | x | | main.rs:840:22:840:43 | T | +| main.rs:841:9:841:14 | x.m2() | | {EXTERNAL LOCATION} | () | +| main.rs:842:9:842:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:842:9:842:9 | y | TRef | main.rs:840:22:840:43 | T | +| main.rs:842:9:842:14 | y.m2() | | {EXTERNAL LOCATION} | () | +| main.rs:845:16:903:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:846:13:846:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:846:13:846:13 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:846:17:846:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:846:17:846:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:846:30:846:31 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:847:13:847:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:13:847:13 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:847:17:847:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:847:17:847:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:847:30:847:31 | S2 | | main.rs:745:5:746:14 | S2 | | main.rs:849:18:849:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:849:18:849:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:849:18:849:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:849:18:849:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:849:26:849:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:850:13:850:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:850:17:850:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:850:33:850:34 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:850:33:850:34 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:851:18:851:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:851:18:851:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:851:18:851:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:851:18:851:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:851:26:851:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:852:13:852:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:852:17:852:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:852:31:852:32 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:852:31:852:32 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:853:18:853:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:853:18:853:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:853:18:853:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:853:18:853:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:853:26:853:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:854:13:854:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:854:17:854:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:854:33:854:34 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:854:33:854:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:849:18:849:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:849:18:849:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:849:26:849:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:849:26:849:26 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:849:26:849:31 | x.m1() | | main.rs:743:5:744:14 | S1 | +| main.rs:850:18:850:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:850:18:850:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:850:18:850:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:850:18:850:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:850:26:850:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:850:26:850:26 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:850:26:850:31 | y.m1() | | main.rs:745:5:746:14 | S2 | +| main.rs:852:13:852:13 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:13:852:13 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:852:17:852:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:852:17:852:33 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:852:30:852:31 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:853:13:853:13 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:13:853:13 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:853:17:853:33 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:853:17:853:33 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:853:30:853:31 | S2 | | main.rs:745:5:746:14 | S2 | | main.rs:855:18:855:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:855:18:855:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:855:18:855:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:855:18:855:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:855:26:855:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:856:13:856:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:856:17:856:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:856:33:856:34 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:856:33:856:34 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:857:18:857:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:857:18:857:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:857:18:857:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:857:18:857:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:857:26:857:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:858:13:858:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:858:17:858:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:858:36:858:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:858:36:858:37 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:859:18:859:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:859:18:859:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:859:18:859:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:859:18:859:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:859:26:859:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:860:13:860:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:860:17:860:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:860:36:860:37 | x2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:860:36:860:37 | x2 | T | main.rs:743:5:744:14 | S1 | -| main.rs:861:18:861:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:861:18:861:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:861:18:861:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:861:18:861:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:861:26:861:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:862:13:862:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:862:17:862:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:862:36:862:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:862:36:862:37 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:863:18:863:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:863:18:863:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:863:18:863:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:863:18:863:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:863:26:863:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:864:13:864:13 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:864:17:864:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:864:36:864:37 | y2 | | main.rs:738:5:741:5 | MyThing | -| main.rs:864:36:864:37 | y2 | T | main.rs:745:5:746:14 | S2 | -| main.rs:865:18:865:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:865:18:865:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:865:18:865:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:865:18:865:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:865:26:865:26 | a | | main.rs:745:5:746:14 | S2 | -| main.rs:867:13:867:14 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:867:13:867:14 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:867:13:867:14 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:867:18:869:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:867:18:869:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | -| main.rs:867:18:869:9 | MyThing {...} | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:868:16:868:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:868:16:868:32 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | -| main.rs:868:29:868:30 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:870:13:870:14 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:13:870:14 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:870:13:870:14 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:870:18:872:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:870:18:872:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | -| main.rs:870:18:872:9 | MyThing {...} | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:871:16:871:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | -| main.rs:871:16:871:32 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | -| main.rs:871:29:871:30 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:874:13:874:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:874:17:874:39 | call_trait_thing_m1(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:874:37:874:38 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:874:37:874:38 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:874:37:874:38 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:875:18:875:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:875:18:875:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:875:18:875:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:875:18:875:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:875:26:875:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:876:13:876:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:876:17:876:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:876:39:876:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:876:39:876:40 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:876:39:876:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:877:18:877:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:877:18:877:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:877:18:877:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:877:18:877:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:877:26:877:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:878:13:878:13 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:878:17:878:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | -| main.rs:878:39:878:40 | x3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:878:39:878:40 | x3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:878:39:878:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | -| main.rs:879:18:879:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:879:18:879:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:879:18:879:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:879:18:879:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:879:26:879:26 | a | | main.rs:743:5:744:14 | S1 | -| main.rs:880:13:880:13 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:880:17:880:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:880:37:880:38 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:880:37:880:38 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:880:37:880:38 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:881:18:881:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:881:18:881:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:881:18:881:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:881:18:881:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:881:26:881:26 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:882:13:882:13 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:882:17:882:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:882:39:882:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:882:39:882:40 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:882:39:882:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:883:18:883:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:883:18:883:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:883:18:883:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:883:18:883:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:883:26:883:26 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:884:13:884:13 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:884:17:884:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | -| main.rs:884:39:884:40 | y3 | | main.rs:738:5:741:5 | MyThing | -| main.rs:884:39:884:40 | y3 | T | main.rs:738:5:741:5 | MyThing | -| main.rs:884:39:884:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | -| main.rs:885:18:885:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:885:18:885:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:885:18:885:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:885:18:885:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:885:26:885:26 | b | | main.rs:745:5:746:14 | S2 | -| main.rs:886:13:886:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:886:17:886:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:886:24:886:25 | S1 | | main.rs:743:5:744:14 | S1 | -| main.rs:887:13:887:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:887:22:887:31 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:887:29:887:30 | S2 | | main.rs:745:5:746:14 | S2 | -| main.rs:898:19:898:22 | SelfParam | | main.rs:892:5:895:5 | Wrapper | -| main.rs:898:19:898:22 | SelfParam | A | main.rs:897:10:897:10 | A | -| main.rs:898:30:900:9 | { ... } | | main.rs:897:10:897:10 | A | -| main.rs:899:13:899:16 | self | | main.rs:892:5:895:5 | Wrapper | -| main.rs:899:13:899:16 | self | A | main.rs:897:10:897:10 | A | -| main.rs:899:13:899:22 | self.field | | main.rs:897:10:897:10 | A | -| main.rs:907:15:907:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:909:15:909:18 | SelfParam | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:913:9:916:9 | { ... } | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:914:13:914:16 | self | | main.rs:903:5:917:5 | Self [trait MyTrait] | -| main.rs:914:13:914:21 | self.m1() | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:915:13:915:43 | ...::default(...) | | main.rs:904:9:904:28 | AssociatedType | -| main.rs:923:19:923:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:923:19:923:23 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:923:26:923:26 | a | | main.rs:923:16:923:16 | A | -| main.rs:925:22:925:26 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:925:22:925:26 | SelfParam | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:925:29:925:29 | a | | main.rs:925:19:925:19 | A | -| main.rs:925:35:925:35 | b | | main.rs:925:19:925:19 | A | -| main.rs:925:75:928:9 | { ... } | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:926:13:926:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:926:13:926:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:926:13:926:23 | self.put(...) | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:926:22:926:22 | a | | main.rs:925:19:925:19 | A | -| main.rs:927:13:927:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:927:13:927:16 | self | TRef | main.rs:919:5:929:5 | Self [trait MyTraitAssoc2] | -| main.rs:927:13:927:23 | self.put(...) | | main.rs:920:9:920:52 | GenericAssociatedType | -| main.rs:927:22:927:22 | b | | main.rs:925:19:925:19 | A | -| main.rs:936:21:936:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:936:21:936:25 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:938:20:938:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:938:20:938:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:940:20:940:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:940:20:940:24 | SelfParam | TRef | main.rs:931:5:941:5 | Self [trait TraitMultipleAssoc] | -| main.rs:956:15:956:18 | SelfParam | | main.rs:943:5:944:13 | S | -| main.rs:956:45:958:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:957:13:957:14 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:966:19:966:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:966:19:966:23 | SelfParam | TRef | main.rs:943:5:944:13 | S | -| main.rs:966:26:966:26 | a | | main.rs:966:16:966:16 | A | -| main.rs:966:46:968:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:966:46:968:9 | { ... } | A | main.rs:966:16:966:16 | A | -| main.rs:967:13:967:32 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:967:13:967:32 | Wrapper {...} | A | main.rs:966:16:966:16 | A | -| main.rs:967:30:967:30 | a | | main.rs:966:16:966:16 | A | -| main.rs:975:15:975:18 | SelfParam | | main.rs:946:5:947:14 | S2 | -| main.rs:975:45:977:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:975:45:977:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:976:13:976:35 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:976:13:976:35 | Wrapper {...} | A | main.rs:946:5:947:14 | S2 | -| main.rs:976:30:976:33 | self | | main.rs:946:5:947:14 | S2 | -| main.rs:982:30:984:9 | { ... } | | main.rs:892:5:895:5 | Wrapper | -| main.rs:982:30:984:9 | { ... } | A | main.rs:946:5:947:14 | S2 | -| main.rs:983:13:983:33 | Wrapper {...} | | main.rs:892:5:895:5 | Wrapper | -| main.rs:983:13:983:33 | Wrapper {...} | A | main.rs:946:5:947:14 | S2 | -| main.rs:983:30:983:31 | S2 | | main.rs:946:5:947:14 | S2 | -| main.rs:989:22:989:26 | thing | | main.rs:989:10:989:19 | T | -| main.rs:990:9:990:13 | thing | | main.rs:989:10:989:19 | T | -| main.rs:997:21:997:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:997:21:997:25 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:997:34:999:9 | { ... } | | main.rs:949:5:950:14 | AT | -| main.rs:998:13:998:14 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1001:20:1001:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1001:20:1001:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1001:43:1003:9 | { ... } | | main.rs:943:5:944:13 | S | -| main.rs:1002:13:1002:13 | S | | main.rs:943:5:944:13 | S | -| main.rs:1005:20:1005:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1005:20:1005:24 | SelfParam | TRef | main.rs:949:5:950:14 | AT | -| main.rs:1005:43:1007:9 | { ... } | | main.rs:946:5:947:14 | S2 | -| main.rs:1006:13:1006:14 | S2 | | main.rs:946:5:947:14 | S2 | -| main.rs:1010:16:1038:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1011:13:1011:14 | x1 | | main.rs:943:5:944:13 | S | -| main.rs:1011:18:1011:18 | S | | main.rs:943:5:944:13 | S | -| main.rs:1013:18:1013:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1013:18:1013:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1013:18:1013:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1013:18:1013:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1013:26:1013:27 | x1 | | main.rs:943:5:944:13 | S | -| main.rs:1013:26:1013:32 | x1.m1() | | main.rs:949:5:950:14 | AT | -| main.rs:1015:13:1015:14 | x2 | | main.rs:943:5:944:13 | S | -| main.rs:1015:18:1015:18 | S | | main.rs:943:5:944:13 | S | -| main.rs:1017:13:1017:13 | y | | main.rs:949:5:950:14 | AT | -| main.rs:1017:17:1017:18 | x2 | | main.rs:943:5:944:13 | S | -| main.rs:1017:17:1017:23 | x2.m2() | | main.rs:949:5:950:14 | AT | -| main.rs:1018:18:1018:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1018:18:1018:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1018:18:1018:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1018:18:1018:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1018:26:1018:26 | y | | main.rs:949:5:950:14 | AT | -| main.rs:1020:13:1020:14 | x3 | | main.rs:943:5:944:13 | S | -| main.rs:1020:18:1020:18 | S | | main.rs:943:5:944:13 | S | -| main.rs:1022:18:1022:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1022:18:1022:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1022:18:1022:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1022:18:1022:43 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1022:26:1022:27 | x3 | | main.rs:943:5:944:13 | S | -| main.rs:1022:26:1022:34 | x3.put(...) | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1022:26:1022:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:1022:26:1022:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1022:33:1022:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1025:18:1025:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1025:18:1025:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1025:18:1025:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1025:18:1025:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1025:26:1025:27 | x3 | | main.rs:943:5:944:13 | S | -| main.rs:1025:26:1025:40 | x3.putTwo(...) | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1025:36:1025:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1025:39:1025:39 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1027:20:1027:20 | S | | main.rs:943:5:944:13 | S | +| main.rs:855:18:855:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:855:18:855:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:855:26:855:26 | x | | main.rs:738:5:741:5 | MyThing | +| main.rs:855:26:855:26 | x | T | main.rs:743:5:744:14 | S1 | +| main.rs:855:26:855:31 | x.m2() | | main.rs:743:5:744:14 | S1 | +| main.rs:856:18:856:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:856:18:856:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:856:18:856:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:856:18:856:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:856:26:856:26 | y | | main.rs:738:5:741:5 | MyThing | +| main.rs:856:26:856:26 | y | T | main.rs:745:5:746:14 | S2 | +| main.rs:856:26:856:31 | y.m2() | | main.rs:745:5:746:14 | S2 | +| main.rs:858:13:858:14 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:13:858:14 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:858:18:858:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:858:18:858:34 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:858:31:858:32 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:859:13:859:14 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:13:859:14 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:859:18:859:34 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:859:18:859:34 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:859:31:859:32 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:861:13:861:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:861:17:861:33 | call_trait_m1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:861:31:861:32 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:861:31:861:32 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:862:18:862:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:862:18:862:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:862:18:862:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:862:18:862:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:862:26:862:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:863:13:863:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:863:17:863:35 | call_trait_m1_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:863:33:863:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:863:33:863:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:864:18:864:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:864:18:864:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:864:18:864:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:864:18:864:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:864:26:864:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:865:13:865:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:865:17:865:35 | call_trait_m1_3(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:865:33:865:34 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:865:33:865:34 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:866:18:866:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:866:18:866:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:866:18:866:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:866:18:866:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:866:26:866:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:867:13:867:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:867:17:867:33 | call_trait_m1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:867:31:867:32 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:867:31:867:32 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:868:18:868:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:868:18:868:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:868:18:868:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:868:18:868:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:868:26:868:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:869:13:869:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:869:17:869:35 | call_trait_m1_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:869:33:869:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:869:33:869:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:870:18:870:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:870:18:870:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:870:18:870:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:870:18:870:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:870:26:870:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:871:13:871:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:871:17:871:35 | call_trait_m1_3(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:871:33:871:34 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:871:33:871:34 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:872:18:872:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:872:18:872:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:872:18:872:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:872:18:872:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:872:26:872:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:873:13:873:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:873:17:873:38 | call_trait_assoc_1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:873:36:873:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:873:36:873:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:874:18:874:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:874:18:874:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:874:18:874:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:874:18:874:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:874:26:874:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:875:13:875:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:875:17:875:38 | call_trait_assoc_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:875:36:875:37 | x2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:875:36:875:37 | x2 | T | main.rs:743:5:744:14 | S1 | +| main.rs:876:18:876:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:876:18:876:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:876:18:876:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:876:18:876:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:876:26:876:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:877:13:877:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:877:17:877:38 | call_trait_assoc_1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:877:36:877:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:877:36:877:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:878:18:878:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:878:18:878:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:878:18:878:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:878:18:878:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:878:26:878:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:879:13:879:13 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:879:17:879:38 | call_trait_assoc_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:879:36:879:37 | y2 | | main.rs:738:5:741:5 | MyThing | +| main.rs:879:36:879:37 | y2 | T | main.rs:745:5:746:14 | S2 | +| main.rs:880:18:880:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:880:18:880:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:880:18:880:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:880:18:880:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:880:26:880:26 | a | | main.rs:745:5:746:14 | S2 | +| main.rs:882:13:882:14 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:882:13:882:14 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:882:13:882:14 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:882:18:884:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:882:18:884:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | +| main.rs:882:18:884:9 | MyThing {...} | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:883:16:883:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:883:16:883:32 | MyThing {...} | T | main.rs:743:5:744:14 | S1 | +| main.rs:883:29:883:30 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:885:13:885:14 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:13:885:14 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:885:13:885:14 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:885:18:887:9 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:885:18:887:9 | MyThing {...} | T | main.rs:738:5:741:5 | MyThing | +| main.rs:885:18:887:9 | MyThing {...} | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:886:16:886:32 | MyThing {...} | | main.rs:738:5:741:5 | MyThing | +| main.rs:886:16:886:32 | MyThing {...} | T | main.rs:745:5:746:14 | S2 | +| main.rs:886:29:886:30 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:889:13:889:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:889:17:889:39 | call_trait_thing_m1(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:889:37:889:38 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:889:37:889:38 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:889:37:889:38 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:890:18:890:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:890:18:890:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:890:18:890:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:890:18:890:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:890:26:890:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:891:13:891:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:891:17:891:41 | call_trait_thing_m1_2(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:891:39:891:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:891:39:891:40 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:891:39:891:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:892:18:892:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:892:18:892:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:892:18:892:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:892:18:892:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:892:26:892:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:893:13:893:13 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:893:17:893:41 | call_trait_thing_m1_3(...) | | main.rs:743:5:744:14 | S1 | +| main.rs:893:39:893:40 | x3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:893:39:893:40 | x3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:893:39:893:40 | x3 | T.T | main.rs:743:5:744:14 | S1 | +| main.rs:894:18:894:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:894:18:894:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:894:18:894:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:894:18:894:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:894:26:894:26 | a | | main.rs:743:5:744:14 | S1 | +| main.rs:895:13:895:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:895:17:895:39 | call_trait_thing_m1(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:895:37:895:38 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:895:37:895:38 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:895:37:895:38 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:896:18:896:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:896:18:896:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:896:18:896:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:896:18:896:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:896:26:896:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:897:13:897:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:897:17:897:41 | call_trait_thing_m1_2(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:897:39:897:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:897:39:897:40 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:897:39:897:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:898:18:898:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:898:18:898:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:898:18:898:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:898:18:898:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:898:26:898:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:899:13:899:13 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:899:17:899:41 | call_trait_thing_m1_3(...) | | main.rs:745:5:746:14 | S2 | +| main.rs:899:39:899:40 | y3 | | main.rs:738:5:741:5 | MyThing | +| main.rs:899:39:899:40 | y3 | T | main.rs:738:5:741:5 | MyThing | +| main.rs:899:39:899:40 | y3 | T.T | main.rs:745:5:746:14 | S2 | +| main.rs:900:18:900:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:900:18:900:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:900:18:900:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:900:18:900:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:900:26:900:26 | b | | main.rs:745:5:746:14 | S2 | +| main.rs:901:13:901:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:901:17:901:26 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:901:24:901:25 | S1 | | main.rs:743:5:744:14 | S1 | +| main.rs:902:13:902:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:902:22:902:31 | ...::m2(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:902:29:902:30 | S2 | | main.rs:745:5:746:14 | S2 | +| main.rs:913:19:913:22 | SelfParam | | main.rs:907:5:910:5 | Wrapper | +| main.rs:913:19:913:22 | SelfParam | A | main.rs:912:10:912:10 | A | +| main.rs:913:30:915:9 | { ... } | | main.rs:912:10:912:10 | A | +| main.rs:914:13:914:16 | self | | main.rs:907:5:910:5 | Wrapper | +| main.rs:914:13:914:16 | self | A | main.rs:912:10:912:10 | A | +| main.rs:914:13:914:22 | self.field | | main.rs:912:10:912:10 | A | +| main.rs:922:15:922:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:924:15:924:18 | SelfParam | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:928:9:931:9 | { ... } | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:929:13:929:16 | self | | main.rs:918:5:932:5 | Self [trait MyTrait] | +| main.rs:929:13:929:21 | self.m1() | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:930:13:930:43 | ...::default(...) | | main.rs:919:9:919:28 | AssociatedType | +| main.rs:938:19:938:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:938:19:938:23 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:938:26:938:26 | a | | main.rs:938:16:938:16 | A | +| main.rs:940:22:940:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:940:22:940:26 | SelfParam | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:940:29:940:29 | a | | main.rs:940:19:940:19 | A | +| main.rs:940:35:940:35 | b | | main.rs:940:19:940:19 | A | +| main.rs:940:75:943:9 | { ... } | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:941:13:941:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:941:13:941:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:941:13:941:23 | self.put(...) | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:941:22:941:22 | a | | main.rs:940:19:940:19 | A | +| main.rs:942:13:942:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:942:13:942:16 | self | TRef | main.rs:934:5:944:5 | Self [trait MyTraitAssoc2] | +| main.rs:942:13:942:23 | self.put(...) | | main.rs:935:9:935:52 | GenericAssociatedType | +| main.rs:942:22:942:22 | b | | main.rs:940:19:940:19 | A | +| main.rs:951:21:951:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:951:21:951:25 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:953:20:953:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:953:20:953:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:955:20:955:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:955:20:955:24 | SelfParam | TRef | main.rs:946:5:956:5 | Self [trait TraitMultipleAssoc] | +| main.rs:971:15:971:18 | SelfParam | | main.rs:958:5:959:13 | S | +| main.rs:971:45:973:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:972:13:972:14 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:981:19:981:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:981:19:981:23 | SelfParam | TRef | main.rs:958:5:959:13 | S | +| main.rs:981:26:981:26 | a | | main.rs:981:16:981:16 | A | +| main.rs:981:46:983:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:981:46:983:9 | { ... } | A | main.rs:981:16:981:16 | A | +| main.rs:982:13:982:32 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:982:13:982:32 | Wrapper {...} | A | main.rs:981:16:981:16 | A | +| main.rs:982:30:982:30 | a | | main.rs:981:16:981:16 | A | +| main.rs:990:15:990:18 | SelfParam | | main.rs:961:5:962:14 | S2 | +| main.rs:990:45:992:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:990:45:992:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:991:13:991:35 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:991:13:991:35 | Wrapper {...} | A | main.rs:961:5:962:14 | S2 | +| main.rs:991:30:991:33 | self | | main.rs:961:5:962:14 | S2 | +| main.rs:997:30:999:9 | { ... } | | main.rs:907:5:910:5 | Wrapper | +| main.rs:997:30:999:9 | { ... } | A | main.rs:961:5:962:14 | S2 | +| main.rs:998:13:998:33 | Wrapper {...} | | main.rs:907:5:910:5 | Wrapper | +| main.rs:998:13:998:33 | Wrapper {...} | A | main.rs:961:5:962:14 | S2 | +| main.rs:998:30:998:31 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1004:22:1004:26 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1005:9:1005:13 | thing | | main.rs:1004:10:1004:19 | T | +| main.rs:1012:21:1012:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1012:21:1012:25 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1012:34:1014:9 | { ... } | | main.rs:964:5:965:14 | AT | +| main.rs:1013:13:1013:14 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1016:20:1016:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1016:20:1016:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1016:43:1018:9 | { ... } | | main.rs:958:5:959:13 | S | +| main.rs:1017:13:1017:13 | S | | main.rs:958:5:959:13 | S | +| main.rs:1020:20:1020:24 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1020:20:1020:24 | SelfParam | TRef | main.rs:964:5:965:14 | AT | +| main.rs:1020:43:1022:9 | { ... } | | main.rs:961:5:962:14 | S2 | +| main.rs:1021:13:1021:14 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1025:16:1053:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1026:13:1026:14 | x1 | | main.rs:958:5:959:13 | S | +| main.rs:1026:18:1026:18 | S | | main.rs:958:5:959:13 | S | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1028:18:1028:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1028:18:1028:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1028:18:1028:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1030:13:1030:14 | x5 | | main.rs:946:5:947:14 | S2 | -| main.rs:1030:18:1030:19 | S2 | | main.rs:946:5:947:14 | S2 | -| main.rs:1031:18:1031:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1031:18:1031:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1031:18:1031:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1031:18:1031:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1031:26:1031:27 | x5 | | main.rs:946:5:947:14 | S2 | -| main.rs:1031:26:1031:32 | x5.m1() | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1031:26:1031:32 | x5.m1() | A | main.rs:946:5:947:14 | S2 | -| main.rs:1032:13:1032:14 | x6 | | main.rs:946:5:947:14 | S2 | -| main.rs:1032:18:1032:19 | S2 | | main.rs:946:5:947:14 | S2 | +| main.rs:1028:18:1028:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1028:18:1028:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1028:26:1028:27 | x1 | | main.rs:958:5:959:13 | S | +| main.rs:1028:26:1028:32 | x1.m1() | | main.rs:964:5:965:14 | AT | +| main.rs:1030:13:1030:14 | x2 | | main.rs:958:5:959:13 | S | +| main.rs:1030:18:1030:18 | S | | main.rs:958:5:959:13 | S | +| main.rs:1032:13:1032:13 | y | | main.rs:964:5:965:14 | AT | +| main.rs:1032:17:1032:18 | x2 | | main.rs:958:5:959:13 | S | +| main.rs:1032:17:1032:23 | x2.m2() | | main.rs:964:5:965:14 | AT | | main.rs:1033:18:1033:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1033:18:1033:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1033:18:1033:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1033:18:1033:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1033:26:1033:27 | x6 | | main.rs:946:5:947:14 | S2 | -| main.rs:1033:26:1033:32 | x6.m2() | | main.rs:892:5:895:5 | Wrapper | -| main.rs:1033:26:1033:32 | x6.m2() | A | main.rs:946:5:947:14 | S2 | -| main.rs:1035:13:1035:22 | assoc_zero | | main.rs:949:5:950:14 | AT | -| main.rs:1035:26:1035:27 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1035:26:1035:38 | AT.get_zero() | | main.rs:949:5:950:14 | AT | -| main.rs:1036:13:1036:21 | assoc_one | | main.rs:943:5:944:13 | S | -| main.rs:1036:25:1036:26 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1036:25:1036:36 | AT.get_one() | | main.rs:943:5:944:13 | S | -| main.rs:1037:13:1037:21 | assoc_two | | main.rs:946:5:947:14 | S2 | -| main.rs:1037:25:1037:26 | AT | | main.rs:949:5:950:14 | AT | -| main.rs:1037:25:1037:36 | AT.get_two() | | main.rs:946:5:947:14 | S2 | -| main.rs:1045:19:1045:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1045:19:1045:23 | SelfParam | TRef | main.rs:1042:5:1046:5 | Self [trait Supertrait] | -| main.rs:1045:26:1045:32 | content | | main.rs:1043:9:1043:21 | Content | -| main.rs:1050:24:1050:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1050:24:1050:28 | SelfParam | TRef | main.rs:1048:5:1051:5 | Self [trait Subtrait] | -| main.rs:1059:23:1059:27 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1059:23:1059:27 | SelfParam | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1059:68:1062:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1060:13:1060:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1060:13:1060:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1060:13:1060:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1061:13:1061:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1061:13:1061:16 | self | TRef | main.rs:1053:5:1063:5 | Self [trait Subtrait2] | -| main.rs:1061:13:1061:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1069:19:1069:23 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1069:19:1069:23 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1069:19:1069:23 | SelfParam | TRef.T | main.rs:1067:10:1067:10 | T | -| main.rs:1069:26:1069:33 | _content | | main.rs:1067:10:1067:10 | T | -| main.rs:1069:51:1071:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1070:22:1070:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1070:22:1070:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1070:22:1070:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1076:24:1076:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1076:24:1076:28 | SelfParam | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1076:24:1076:28 | SelfParam | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1076:48:1078:9 | { ... } | | main.rs:1074:10:1074:17 | T | -| main.rs:1077:13:1077:19 | (...) | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:13:1077:19 | (...) | T | main.rs:1074:10:1074:17 | T | -| main.rs:1077:13:1077:21 | ... .0 | | main.rs:1074:10:1074:17 | T | -| main.rs:1077:13:1077:29 | ... .clone() | | main.rs:1074:10:1074:17 | T | -| main.rs:1077:14:1077:18 | * ... | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:14:1077:18 | * ... | T | main.rs:1074:10:1074:17 | T | -| main.rs:1077:15:1077:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1077:15:1077:18 | self | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1077:15:1077:18 | self | TRef.T | main.rs:1074:10:1074:17 | T | -| main.rs:1081:33:1081:36 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1081:33:1081:36 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1082:9:1082:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1082:9:1082:12 | item | TRef | main.rs:1081:20:1081:30 | T | -| main.rs:1085:35:1085:38 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1085:35:1085:38 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1085:93:1088:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1086:9:1086:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1086:9:1086:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1086:9:1086:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1087:9:1087:12 | item | | {EXTERNAL LOCATION} | & | -| main.rs:1087:9:1087:12 | item | TRef | main.rs:1085:21:1085:32 | T | -| main.rs:1087:9:1087:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1090:15:1096:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1091:13:1091:17 | item1 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1091:13:1091:17 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1091:21:1091:33 | MyType(...) | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1091:21:1091:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1091:28:1091:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1092:25:1092:29 | item1 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1092:25:1092:29 | item1 | T | {EXTERNAL LOCATION} | i64 | -| main.rs:1094:13:1094:17 | item2 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1094:13:1094:17 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1094:21:1094:32 | MyType(...) | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1094:21:1094:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | -| main.rs:1094:28:1094:31 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1095:37:1095:42 | &item2 | | {EXTERNAL LOCATION} | & | -| main.rs:1095:37:1095:42 | &item2 | TRef | main.rs:1065:5:1065:24 | MyType | -| main.rs:1095:37:1095:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | -| main.rs:1095:38:1095:42 | item2 | | main.rs:1065:5:1065:24 | MyType | -| main.rs:1095:38:1095:42 | item2 | T | {EXTERNAL LOCATION} | bool | -| main.rs:1112:15:1112:18 | SelfParam | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1112:15:1112:18 | SelfParam | A | main.rs:1111:10:1111:10 | T | -| main.rs:1112:26:1117:9 | { ... } | | main.rs:1111:10:1111:10 | T | -| main.rs:1113:13:1116:13 | match self { ... } | | main.rs:1111:10:1111:10 | T | -| main.rs:1113:19:1113:22 | self | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1113:19:1113:22 | self | A | main.rs:1111:10:1111:10 | T | -| main.rs:1114:17:1114:29 | ...::C1(...) | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1114:17:1114:29 | ...::C1(...) | A | main.rs:1111:10:1111:10 | T | -| main.rs:1114:28:1114:28 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1114:34:1114:34 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1115:17:1115:32 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1115:17:1115:32 | ...::C2 {...} | A | main.rs:1111:10:1111:10 | T | -| main.rs:1115:30:1115:30 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1115:37:1115:37 | a | | main.rs:1111:10:1111:10 | T | -| main.rs:1120:16:1126:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1121:13:1121:13 | x | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1121:13:1121:13 | x | A | main.rs:1106:5:1107:14 | S1 | -| main.rs:1121:17:1121:30 | ...::C1(...) | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1121:17:1121:30 | ...::C1(...) | A | main.rs:1106:5:1107:14 | S1 | -| main.rs:1121:28:1121:29 | S1 | | main.rs:1106:5:1107:14 | S1 | -| main.rs:1122:13:1122:13 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1122:13:1122:13 | y | A | main.rs:1108:5:1109:14 | S2 | -| main.rs:1122:17:1122:36 | ...::C2 {...} | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1122:17:1122:36 | ...::C2 {...} | A | main.rs:1108:5:1109:14 | S2 | -| main.rs:1122:33:1122:34 | S2 | | main.rs:1108:5:1109:14 | S2 | -| main.rs:1124:18:1124:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1124:18:1124:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1124:18:1124:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1124:18:1124:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1124:26:1124:26 | x | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1124:26:1124:26 | x | A | main.rs:1106:5:1107:14 | S1 | -| main.rs:1124:26:1124:31 | x.m1() | | main.rs:1106:5:1107:14 | S1 | -| main.rs:1125:18:1125:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1125:18:1125:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1125:18:1125:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1125:18:1125:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1125:26:1125:26 | y | | main.rs:1100:5:1104:5 | MyEnum | -| main.rs:1125:26:1125:26 | y | A | main.rs:1108:5:1109:14 | S2 | -| main.rs:1125:26:1125:31 | y.m1() | | main.rs:1108:5:1109:14 | S2 | -| main.rs:1147:15:1147:18 | SelfParam | | main.rs:1145:5:1148:5 | Self [trait MyTrait1] | -| main.rs:1152:15:1152:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1152:15:1152:19 | SelfParam | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1155:9:1161:9 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1156:13:1160:13 | if ... {...} else {...} | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1156:16:1156:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1156:16:1156:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1156:20:1156:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1156:22:1158:13 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1157:17:1157:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1157:17:1157:20 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1157:17:1157:25 | self.m1() | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1158:20:1160:13 | { ... } | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1159:17:1159:31 | ...::m1(...) | | main.rs:1150:20:1150:22 | Tr2 | -| main.rs:1159:26:1159:30 | * ... | | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1159:27:1159:30 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1159:27:1159:30 | self | TRef | main.rs:1150:5:1162:5 | Self [trait MyTrait2] | -| main.rs:1166:15:1166:18 | SelfParam | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1169:9:1175:9 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1170:13:1174:13 | if ... {...} else {...} | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1170:16:1170:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1170:16:1170:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1170:20:1170:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1170:22:1172:13 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1171:17:1171:20 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1171:17:1171:25 | self.m2() | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1171:17:1171:25 | self.m2() | A | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1171:17:1171:27 | ... .a | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1172:20:1174:13 | { ... } | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1173:17:1173:31 | ...::m2(...) | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1173:17:1173:31 | ...::m2(...) | A | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1173:17:1173:33 | ... .a | | main.rs:1164:20:1164:22 | Tr3 | -| main.rs:1173:26:1173:30 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1173:26:1173:30 | &self | TRef | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1173:27:1173:30 | self | | main.rs:1164:5:1176:5 | Self [trait MyTrait3] | -| main.rs:1180:15:1180:18 | SelfParam | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1180:15:1180:18 | SelfParam | A | main.rs:1178:10:1178:10 | T | -| main.rs:1180:26:1182:9 | { ... } | | main.rs:1178:10:1178:10 | T | -| main.rs:1181:13:1181:16 | self | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1181:13:1181:16 | self | A | main.rs:1178:10:1178:10 | T | -| main.rs:1181:13:1181:18 | self.a | | main.rs:1178:10:1178:10 | T | -| main.rs:1189:15:1189:18 | SelfParam | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1189:15:1189:18 | SelfParam | A | main.rs:1187:10:1187:10 | T | -| main.rs:1189:35:1191:9 | { ... } | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1189:35:1191:9 | { ... } | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:13:1190:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1190:13:1190:33 | MyThing {...} | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:26:1190:29 | self | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1190:26:1190:29 | self | A | main.rs:1187:10:1187:10 | T | -| main.rs:1190:26:1190:31 | self.a | | main.rs:1187:10:1187:10 | T | -| main.rs:1198:44:1198:44 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1198:57:1200:5 | { ... } | | main.rs:1198:22:1198:23 | T1 | -| main.rs:1199:9:1199:9 | x | | main.rs:1198:26:1198:41 | T2 | -| main.rs:1199:9:1199:14 | x.m1() | | main.rs:1198:22:1198:23 | T1 | -| main.rs:1202:56:1202:56 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1202:62:1206:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1204:13:1204:13 | a | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1204:13:1204:13 | a | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1204:17:1204:17 | x | | main.rs:1202:39:1202:53 | T | -| main.rs:1204:17:1204:22 | x.m1() | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1204:17:1204:22 | x.m1() | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1205:18:1205:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1205:18:1205:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1205:18:1205:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1205:18:1205:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1205:26:1205:26 | a | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1205:26:1205:26 | a | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1208:16:1232:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1209:13:1209:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1209:13:1209:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1209:17:1209:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1209:17:1209:33 | MyThing {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1209:30:1209:31 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1210:13:1210:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:13:1210:13 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1210:17:1210:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1210:17:1210:33 | MyThing {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1210:30:1210:31 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1212:18:1212:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1212:18:1212:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1212:18:1212:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1212:18:1212:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1212:26:1212:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1212:26:1212:26 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1212:26:1212:31 | x.m1() | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1213:18:1213:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1213:18:1213:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1213:18:1213:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1213:18:1213:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1213:26:1213:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1213:26:1213:26 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1213:26:1213:31 | y.m1() | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1215:13:1215:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:13:1215:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1215:17:1215:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1215:17:1215:33 | MyThing {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1215:30:1215:31 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1216:13:1216:13 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:13:1216:13 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1216:17:1216:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1216:17:1216:33 | MyThing {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1216:30:1216:31 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1218:18:1218:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1218:18:1218:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1218:18:1218:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1218:18:1218:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1218:26:1218:26 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1218:26:1218:26 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1218:26:1218:31 | x.m2() | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1219:18:1219:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1219:18:1219:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1219:18:1219:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1219:18:1219:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1219:26:1219:26 | y | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1219:26:1219:26 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1219:26:1219:31 | y.m2() | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1221:13:1221:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1221:13:1221:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1221:17:1221:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1221:17:1221:34 | MyThing2 {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1221:31:1221:32 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1222:13:1222:13 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:13:1222:13 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1222:17:1222:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1222:17:1222:34 | MyThing2 {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1222:31:1222:32 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1224:18:1224:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1224:18:1224:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1224:18:1224:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1224:18:1224:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1224:26:1224:26 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1224:26:1224:26 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1224:26:1224:31 | x.m3() | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1225:18:1225:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1225:18:1225:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1225:18:1225:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1225:18:1225:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1225:26:1225:26 | y | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1225:26:1225:26 | y | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1225:26:1225:31 | y.m3() | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1227:13:1227:13 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1227:13:1227:13 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1227:17:1227:33 | MyThing {...} | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1227:17:1227:33 | MyThing {...} | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1227:30:1227:31 | S1 | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1228:13:1228:13 | s | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1228:17:1228:32 | call_trait_m1(...) | | main.rs:1140:5:1141:14 | S1 | -| main.rs:1228:31:1228:31 | x | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1228:31:1228:31 | x | A | main.rs:1140:5:1141:14 | S1 | -| main.rs:1230:13:1230:13 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1230:13:1230:13 | x | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1230:17:1230:34 | MyThing2 {...} | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1230:17:1230:34 | MyThing2 {...} | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1230:31:1230:32 | S2 | | main.rs:1142:5:1143:14 | S2 | -| main.rs:1231:13:1231:13 | s | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1231:13:1231:13 | s | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1231:17:1231:32 | call_trait_m1(...) | | main.rs:1130:5:1133:5 | MyThing | -| main.rs:1231:17:1231:32 | call_trait_m1(...) | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1231:31:1231:31 | x | | main.rs:1135:5:1138:5 | MyThing2 | -| main.rs:1231:31:1231:31 | x | A | main.rs:1142:5:1143:14 | S2 | -| main.rs:1248:22:1248:22 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1248:22:1248:22 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1248:35:1250:5 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1248:35:1250:5 | { ... } | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1249:9:1249:9 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1249:9:1249:9 | x | TRef | main.rs:1248:11:1248:19 | T | -| main.rs:1253:17:1253:20 | SelfParam | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1253:29:1255:9 | { ... } | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1254:13:1254:14 | S2 | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1258:21:1258:21 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1261:5:1263:5 | { ... } | | main.rs:1258:17:1258:18 | T2 | -| main.rs:1262:9:1262:9 | x | | main.rs:1258:13:1258:14 | T1 | -| main.rs:1262:9:1262:16 | x.into() | | main.rs:1258:17:1258:18 | T2 | -| main.rs:1265:16:1281:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1266:13:1266:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1266:17:1266:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1267:18:1267:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1267:18:1267:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1267:18:1267:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1267:18:1267:31 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1267:26:1267:31 | id(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1267:26:1267:31 | id(...) | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1267:29:1267:30 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1267:29:1267:30 | &x | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1267:30:1267:30 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1269:13:1269:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1269:17:1269:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:18:1270:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1270:18:1270:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1270:18:1270:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1270:18:1270:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1270:26:1270:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1270:26:1270:37 | id::<...>(...) | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:35:1270:36 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1270:35:1270:36 | &x | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1270:36:1270:36 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1272:13:1272:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1272:17:1272:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1274:18:1274:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1274:18:1274:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1274:18:1274:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1274:18:1274:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1274:26:1274:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1274:26:1274:44 | id::<...>(...) | TRef | main.rs:1244:5:1244:25 | dyn Trait | -| main.rs:1274:42:1274:43 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1274:42:1274:43 | &x | TRef | main.rs:1238:5:1239:14 | S1 | -| main.rs:1274:43:1274:43 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1276:13:1276:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1276:17:1276:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1277:9:1277:25 | into::<...>(...) | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1277:24:1277:24 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1279:13:1279:13 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1279:17:1279:18 | S1 | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1280:13:1280:13 | y | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1280:21:1280:27 | into(...) | | main.rs:1241:5:1242:14 | S2 | -| main.rs:1280:26:1280:26 | x | | main.rs:1238:5:1239:14 | S1 | -| main.rs:1294:22:1294:25 | SelfParam | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1294:22:1294:25 | SelfParam | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1294:22:1294:25 | SelfParam | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1294:35:1301:9 | { ... } | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1295:13:1300:13 | match self { ... } | | file://:0:0:0:0 | ! | -| main.rs:1295:13:1300:13 | match self { ... } | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1295:19:1295:22 | self | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1295:19:1295:22 | self | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1295:19:1295:22 | self | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1296:17:1296:38 | ...::PairNone(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1296:17:1296:38 | ...::PairNone(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1296:17:1296:38 | ...::PairNone(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1296:43:1296:82 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | -| main.rs:1296:50:1296:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1296:50:1296:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1296:50:1296:81 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1296:50:1296:81 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1297:17:1297:38 | ...::PairFst(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1297:17:1297:38 | ...::PairFst(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1297:17:1297:38 | ...::PairFst(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1297:37:1297:37 | _ | | main.rs:1293:10:1293:12 | Fst | -| main.rs:1297:43:1297:81 | MacroExpr | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | -| main.rs:1297:50:1297:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1297:50:1297:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | -| main.rs:1297:50:1297:80 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:1297:50:1297:80 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1298:17:1298:40 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1298:17:1298:40 | ...::PairSnd(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1298:17:1298:40 | ...::PairSnd(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1298:37:1298:39 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1298:45:1298:47 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1299:17:1299:44 | ...::PairBoth(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1299:17:1299:44 | ...::PairBoth(...) | Fst | main.rs:1293:10:1293:12 | Fst | -| main.rs:1299:17:1299:44 | ...::PairBoth(...) | Snd | main.rs:1293:15:1293:17 | Snd | -| main.rs:1299:38:1299:38 | _ | | main.rs:1293:10:1293:12 | Fst | -| main.rs:1299:41:1299:43 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1299:49:1299:51 | snd | | main.rs:1293:15:1293:17 | Snd | -| main.rs:1325:10:1325:10 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1325:10:1325:10 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1325:10:1325:10 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1325:30:1328:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1326:13:1326:13 | x | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1326:17:1326:17 | t | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:17 | t | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:17 | t | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1326:17:1326:29 | t.unwrapSnd() | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1326:17:1326:29 | t.unwrapSnd() | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1326:17:1326:29 | t.unwrapSnd() | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1326:17:1326:41 | ... .unwrapSnd() | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1327:18:1327:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1327:18:1327:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1327:18:1327:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1327:18:1327:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1327:26:1327:26 | x | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1342:22:1342:25 | SelfParam | | main.rs:1340:5:1343:5 | Self [trait TraitWithAssocType] | -| main.rs:1350:22:1350:25 | SelfParam | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1350:22:1350:25 | SelfParam | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1350:44:1352:9 | { ... } | E | main.rs:1345:10:1345:15 | Output | -| main.rs:1350:44:1352:9 | { ... } | T | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:13:1351:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1351:13:1351:22 | Ok(...) | E | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:13:1351:22 | Ok(...) | T | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:16:1351:19 | self | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1351:16:1351:19 | self | GenT | main.rs:1345:10:1345:15 | Output | -| main.rs:1351:16:1351:21 | self.0 | | main.rs:1345:10:1345:15 | Output | -| main.rs:1355:16:1377:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1357:13:1357:14 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1357:13:1357:14 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:13:1357:14 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1357:26:1357:53 | ...::PairBoth(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1357:26:1357:53 | ...::PairBoth(...) | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:26:1357:53 | ...::PairBoth(...) | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1357:47:1357:48 | S1 | | main.rs:1304:5:1305:14 | S1 | -| main.rs:1357:51:1357:52 | S2 | | main.rs:1307:5:1308:14 | S2 | -| main.rs:1358:18:1358:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1358:18:1358:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1358:18:1358:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1358:18:1358:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1358:26:1358:27 | p1 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1358:26:1358:27 | p1 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1358:26:1358:27 | p1 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1361:13:1361:14 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1361:13:1361:14 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1361:13:1361:14 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1361:26:1361:47 | ...::PairNone(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1361:26:1361:47 | ...::PairNone(...) | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1361:26:1361:47 | ...::PairNone(...) | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1362:18:1362:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1362:18:1362:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1362:18:1362:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1362:18:1362:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1362:26:1362:27 | p2 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1362:26:1362:27 | p2 | Fst | main.rs:1304:5:1305:14 | S1 | -| main.rs:1362:26:1362:27 | p2 | Snd | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:13:1365:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1365:13:1365:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:13:1365:14 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1365:34:1365:56 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1365:34:1365:56 | ...::PairSnd(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1365:34:1365:56 | ...::PairSnd(...) | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1365:54:1365:55 | S3 | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1366:18:1366:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1366:18:1366:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1366:18:1366:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1366:18:1366:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1366:26:1366:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1366:26:1366:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1366:26:1366:27 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1369:13:1369:14 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1369:13:1369:14 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:13:1369:14 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1369:35:1369:56 | ...::PairNone(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1369:35:1369:56 | ...::PairNone(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1369:35:1369:56 | ...::PairNone(...) | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1370:18:1370:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1370:18:1370:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1370:18:1370:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1370:18:1370:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1370:26:1370:27 | p3 | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1370:26:1370:27 | p3 | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1370:26:1370:27 | p3 | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:9:1372:55 | g(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Snd | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1372:11:1372:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:31:1372:53 | ...::PairSnd(...) | | main.rs:1285:5:1291:5 | PairOption | -| main.rs:1372:31:1372:53 | ...::PairSnd(...) | Fst | main.rs:1307:5:1308:14 | S2 | -| main.rs:1372:31:1372:53 | ...::PairSnd(...) | Snd | main.rs:1310:5:1311:14 | S3 | -| main.rs:1372:51:1372:52 | S3 | | main.rs:1310:5:1311:14 | S3 | -| main.rs:1374:13:1374:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1374:13:1374:13 | x | E | main.rs:1304:5:1305:14 | S1 | -| main.rs:1374:13:1374:13 | x | T | main.rs:1330:5:1330:34 | S4 | -| main.rs:1374:13:1374:13 | x | T.T41 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1374:13:1374:13 | x | T.T42 | main.rs:1332:5:1332:22 | S5 | -| main.rs:1374:13:1374:13 | x | T.T42.T5 | main.rs:1307:5:1308:14 | S2 | -| main.rs:1376:13:1376:13 | y | | {EXTERNAL LOCATION} | Result | -| main.rs:1376:13:1376:13 | y | E | {EXTERNAL LOCATION} | bool | -| main.rs:1376:13:1376:13 | y | T | {EXTERNAL LOCATION} | bool | -| main.rs:1376:17:1376:26 | GenS(...) | | main.rs:1338:5:1338:28 | GenS | -| main.rs:1376:17:1376:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | -| main.rs:1376:17:1376:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | -| main.rs:1376:17:1376:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | -| main.rs:1376:17:1376:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | -| main.rs:1376:22:1376:25 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1389:16:1389:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1389:16:1389:24 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1389:27:1389:31 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:21:1391:29 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1391:21:1391:29 | SelfParam | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1391:32:1391:36 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1391:42:1393:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1392:13:1392:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1392:13:1392:16 | self | TRef | main.rs:1387:5:1394:5 | Self [trait MyTrait] | -| main.rs:1392:13:1392:27 | self.set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1392:22:1392:26 | value | | main.rs:1387:19:1387:19 | S | -| main.rs:1398:16:1398:24 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1398:16:1398:24 | SelfParam | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1398:16:1398:24 | SelfParam | TRef.T | main.rs:1396:10:1396:10 | T | -| main.rs:1398:27:1398:31 | value | | main.rs:1396:10:1396:10 | T | -| main.rs:1398:37:1398:38 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1402:26:1404:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1402:26:1404:9 | { ... } | T | main.rs:1401:10:1401:10 | T | -| main.rs:1403:13:1403:30 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1403:13:1403:30 | ...::MyNone(...) | T | main.rs:1401:10:1401:10 | T | -| main.rs:1408:20:1408:23 | SelfParam | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:20:1408:23 | SelfParam | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1408:41:1413:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1408:41:1413:9 | { ... } | T | main.rs:1407:10:1407:10 | T | -| main.rs:1409:13:1412:13 | match self { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:13:1412:13 | match self { ... } | T | main.rs:1407:10:1407:10 | T | -| main.rs:1409:19:1409:22 | self | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1409:19:1409:22 | self | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1410:17:1410:34 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1410:17:1410:34 | ...::MyNone(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1410:17:1410:34 | ...::MyNone(...) | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1410:39:1410:56 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1410:39:1410:56 | ...::MyNone(...) | T | main.rs:1407:10:1407:10 | T | -| main.rs:1411:17:1411:35 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:17:1411:35 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:17:1411:35 | ...::MySome(...) | T.T | main.rs:1407:10:1407:10 | T | -| main.rs:1411:34:1411:34 | x | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:34:1411:34 | x | T | main.rs:1407:10:1407:10 | T | -| main.rs:1411:40:1411:40 | x | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1411:40:1411:40 | x | T | main.rs:1407:10:1407:10 | T | -| main.rs:1419:16:1465:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1420:13:1420:14 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:13:1420:14 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1420:18:1420:37 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1420:18:1420:37 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1421:18:1421:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1421:18:1421:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1421:18:1421:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1421:18:1421:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1421:26:1421:27 | x1 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1421:26:1421:27 | x1 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1423:17:1423:18 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1423:17:1423:18 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1423:22:1423:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1423:22:1423:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1424:9:1424:10 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1424:9:1424:10 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1424:9:1424:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1424:16:1424:16 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1425:18:1425:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1425:18:1425:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1425:18:1425:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1425:18:1425:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1425:26:1425:27 | x2 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1425:26:1425:27 | x2 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1428:17:1428:18 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1428:22:1428:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:9:1429:10 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1429:9:1429:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1429:21:1429:21 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1430:18:1430:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1430:18:1430:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1430:18:1430:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1430:18:1430:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1430:26:1430:27 | x3 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:17:1432:18 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:17:1432:18 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1432:22:1432:36 | ...::new(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1432:22:1432:36 | ...::new(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1433:9:1433:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1433:23:1433:29 | &mut x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1433:23:1433:29 | &mut x4 | TRef | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:23:1433:29 | &mut x4 | TRef.T | main.rs:1416:5:1417:13 | S | -| main.rs:1433:28:1433:29 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1433:28:1433:29 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1433:32:1433:32 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1434:18:1434:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1434:18:1434:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1434:18:1434:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1434:18:1434:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1434:26:1434:27 | x4 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1434:26:1434:27 | x4 | T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:13:1436:14 | x5 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:13:1436:14 | x5 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:13:1436:14 | x5 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:18:1436:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:18:1436:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:18:1436:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1436:35:1436:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1436:35:1436:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1437:18:1437:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1437:18:1437:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1437:18:1437:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1437:18:1437:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1437:26:1437:27 | x5 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:26:1437:27 | x5 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:26:1437:27 | x5 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1437:26:1437:37 | x5.flatten() | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1437:26:1437:37 | x5.flatten() | T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:13:1439:14 | x6 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:13:1439:14 | x6 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:13:1439:14 | x6 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:18:1439:58 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:18:1439:58 | ...::MySome(...) | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:18:1439:58 | ...::MySome(...) | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1439:35:1439:57 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1439:35:1439:57 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | +| main.rs:1033:18:1033:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1033:18:1033:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1033:26:1033:26 | y | | main.rs:964:5:965:14 | AT | +| main.rs:1035:13:1035:14 | x3 | | main.rs:958:5:959:13 | S | +| main.rs:1035:18:1035:18 | S | | main.rs:958:5:959:13 | S | +| main.rs:1037:18:1037:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1037:18:1037:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1037:18:1037:43 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1037:18:1037:43 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1037:26:1037:27 | x3 | | main.rs:958:5:959:13 | S | +| main.rs:1037:26:1037:34 | x3.put(...) | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1037:26:1037:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | +| main.rs:1037:26:1037:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1037:33:1037:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1040:18:1040:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1040:18:1040:49 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1040:18:1040:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1040:26:1040:27 | x3 | | main.rs:958:5:959:13 | S | +| main.rs:1040:26:1040:40 | x3.putTwo(...) | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1040:36:1040:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1040:39:1040:39 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1042:20:1042:20 | S | | main.rs:958:5:959:13 | S | +| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1043:18:1043:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1043:18:1043:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1043:18:1043:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1045:13:1045:14 | x5 | | main.rs:961:5:962:14 | S2 | +| main.rs:1045:18:1045:19 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1046:18:1046:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1046:18:1046:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1046:18:1046:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1046:26:1046:27 | x5 | | main.rs:961:5:962:14 | S2 | +| main.rs:1046:26:1046:32 | x5.m1() | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1046:26:1046:32 | x5.m1() | A | main.rs:961:5:962:14 | S2 | +| main.rs:1047:13:1047:14 | x6 | | main.rs:961:5:962:14 | S2 | +| main.rs:1047:18:1047:19 | S2 | | main.rs:961:5:962:14 | S2 | +| main.rs:1048:18:1048:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1048:18:1048:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1048:18:1048:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1048:18:1048:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1048:26:1048:27 | x6 | | main.rs:961:5:962:14 | S2 | +| main.rs:1048:26:1048:32 | x6.m2() | | main.rs:907:5:910:5 | Wrapper | +| main.rs:1048:26:1048:32 | x6.m2() | A | main.rs:961:5:962:14 | S2 | +| main.rs:1050:13:1050:22 | assoc_zero | | main.rs:964:5:965:14 | AT | +| main.rs:1050:26:1050:27 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1050:26:1050:38 | AT.get_zero() | | main.rs:964:5:965:14 | AT | +| main.rs:1051:13:1051:21 | assoc_one | | main.rs:958:5:959:13 | S | +| main.rs:1051:25:1051:26 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1051:25:1051:36 | AT.get_one() | | main.rs:958:5:959:13 | S | +| main.rs:1052:13:1052:21 | assoc_two | | main.rs:961:5:962:14 | S2 | +| main.rs:1052:25:1052:26 | AT | | main.rs:964:5:965:14 | AT | +| main.rs:1052:25:1052:36 | AT.get_two() | | main.rs:961:5:962:14 | S2 | +| main.rs:1060:19:1060:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1060:19:1060:23 | SelfParam | TRef | main.rs:1057:5:1061:5 | Self [trait Supertrait] | +| main.rs:1060:26:1060:32 | content | | main.rs:1058:9:1058:21 | Content | +| main.rs:1065:24:1065:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1065:24:1065:28 | SelfParam | TRef | main.rs:1063:5:1066:5 | Self [trait Subtrait] | +| main.rs:1074:23:1074:27 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1074:23:1074:27 | SelfParam | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1074:68:1077:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1075:13:1075:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1075:13:1075:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1075:13:1075:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1076:13:1076:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1076:13:1076:16 | self | TRef | main.rs:1068:5:1078:5 | Self [trait Subtrait2] | +| main.rs:1076:13:1076:27 | self.insert(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1084:19:1084:23 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1084:19:1084:23 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1084:19:1084:23 | SelfParam | TRef.T | main.rs:1082:10:1082:10 | T | +| main.rs:1084:26:1084:33 | _content | | main.rs:1082:10:1082:10 | T | +| main.rs:1084:51:1086:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1085:22:1085:42 | "Inserting content: \\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1085:22:1085:42 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1085:22:1085:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1091:24:1091:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1091:24:1091:28 | SelfParam | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1091:24:1091:28 | SelfParam | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1091:48:1093:9 | { ... } | | main.rs:1089:10:1089:17 | T | +| main.rs:1092:13:1092:19 | (...) | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:13:1092:19 | (...) | T | main.rs:1089:10:1089:17 | T | +| main.rs:1092:13:1092:21 | ... .0 | | main.rs:1089:10:1089:17 | T | +| main.rs:1092:13:1092:29 | ... .clone() | | main.rs:1089:10:1089:17 | T | +| main.rs:1092:14:1092:18 | * ... | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:14:1092:18 | * ... | T | main.rs:1089:10:1089:17 | T | +| main.rs:1092:15:1092:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1092:15:1092:18 | self | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1092:15:1092:18 | self | TRef.T | main.rs:1089:10:1089:17 | T | +| main.rs:1096:33:1096:36 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1096:33:1096:36 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1097:9:1097:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1097:9:1097:12 | item | TRef | main.rs:1096:20:1096:30 | T | +| main.rs:1100:35:1100:38 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1100:35:1100:38 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1100:93:1103:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1101:9:1101:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1101:9:1101:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1101:9:1101:23 | item.insert(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1102:9:1102:12 | item | | {EXTERNAL LOCATION} | & | +| main.rs:1102:9:1102:12 | item | TRef | main.rs:1100:21:1100:32 | T | +| main.rs:1102:9:1102:31 | item.insert_two(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1105:15:1111:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1106:13:1106:17 | item1 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1106:13:1106:17 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1106:21:1106:33 | MyType(...) | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1106:21:1106:33 | MyType(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1106:28:1106:32 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1107:25:1107:29 | item1 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1107:25:1107:29 | item1 | T | {EXTERNAL LOCATION} | i64 | +| main.rs:1109:13:1109:17 | item2 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1109:13:1109:17 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1109:21:1109:32 | MyType(...) | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1109:21:1109:32 | MyType(...) | T | {EXTERNAL LOCATION} | bool | +| main.rs:1109:28:1109:31 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1110:37:1110:42 | &item2 | | {EXTERNAL LOCATION} | & | +| main.rs:1110:37:1110:42 | &item2 | TRef | main.rs:1080:5:1080:24 | MyType | +| main.rs:1110:37:1110:42 | &item2 | TRef.T | {EXTERNAL LOCATION} | bool | +| main.rs:1110:38:1110:42 | item2 | | main.rs:1080:5:1080:24 | MyType | +| main.rs:1110:38:1110:42 | item2 | T | {EXTERNAL LOCATION} | bool | +| main.rs:1127:15:1127:18 | SelfParam | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1127:15:1127:18 | SelfParam | A | main.rs:1126:10:1126:10 | T | +| main.rs:1127:26:1132:9 | { ... } | | main.rs:1126:10:1126:10 | T | +| main.rs:1128:13:1131:13 | match self { ... } | | main.rs:1126:10:1126:10 | T | +| main.rs:1128:19:1128:22 | self | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1128:19:1128:22 | self | A | main.rs:1126:10:1126:10 | T | +| main.rs:1129:17:1129:29 | ...::C1(...) | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1129:17:1129:29 | ...::C1(...) | A | main.rs:1126:10:1126:10 | T | +| main.rs:1129:28:1129:28 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1129:34:1129:34 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1130:17:1130:32 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1130:17:1130:32 | ...::C2 {...} | A | main.rs:1126:10:1126:10 | T | +| main.rs:1130:30:1130:30 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1130:37:1130:37 | a | | main.rs:1126:10:1126:10 | T | +| main.rs:1135:16:1141:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1136:13:1136:13 | x | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1136:13:1136:13 | x | A | main.rs:1121:5:1122:14 | S1 | +| main.rs:1136:17:1136:30 | ...::C1(...) | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1136:17:1136:30 | ...::C1(...) | A | main.rs:1121:5:1122:14 | S1 | +| main.rs:1136:28:1136:29 | S1 | | main.rs:1121:5:1122:14 | S1 | +| main.rs:1137:13:1137:13 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1137:13:1137:13 | y | A | main.rs:1123:5:1124:14 | S2 | +| main.rs:1137:17:1137:36 | ...::C2 {...} | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1137:17:1137:36 | ...::C2 {...} | A | main.rs:1123:5:1124:14 | S2 | +| main.rs:1137:33:1137:34 | S2 | | main.rs:1123:5:1124:14 | S2 | +| main.rs:1139:18:1139:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1139:18:1139:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1139:18:1139:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1139:18:1139:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1139:26:1139:26 | x | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1139:26:1139:26 | x | A | main.rs:1121:5:1122:14 | S1 | +| main.rs:1139:26:1139:31 | x.m1() | | main.rs:1121:5:1122:14 | S1 | +| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1140:18:1140:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1140:18:1140:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1140:18:1140:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1140:26:1140:26 | y | | main.rs:1115:5:1119:5 | MyEnum | +| main.rs:1140:26:1140:26 | y | A | main.rs:1123:5:1124:14 | S2 | +| main.rs:1140:26:1140:31 | y.m1() | | main.rs:1123:5:1124:14 | S2 | +| main.rs:1162:15:1162:18 | SelfParam | | main.rs:1160:5:1163:5 | Self [trait MyTrait1] | +| main.rs:1167:15:1167:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1167:15:1167:19 | SelfParam | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1170:9:1176:9 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1171:13:1175:13 | if ... {...} else {...} | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1171:16:1171:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1171:16:1171:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1171:20:1171:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1171:22:1173:13 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1172:17:1172:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1172:17:1172:20 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1172:17:1172:25 | self.m1() | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1173:20:1175:13 | { ... } | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1174:17:1174:31 | ...::m1(...) | | main.rs:1165:20:1165:22 | Tr2 | +| main.rs:1174:26:1174:30 | * ... | | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1174:27:1174:30 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1174:27:1174:30 | self | TRef | main.rs:1165:5:1177:5 | Self [trait MyTrait2] | +| main.rs:1181:15:1181:18 | SelfParam | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1184:9:1190:9 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1185:13:1189:13 | if ... {...} else {...} | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1185:16:1185:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1185:16:1185:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1185:20:1185:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1185:22:1187:13 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1186:17:1186:20 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1186:17:1186:25 | self.m2() | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1186:17:1186:25 | self.m2() | A | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1186:17:1186:27 | ... .a | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1187:20:1189:13 | { ... } | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1188:17:1188:31 | ...::m2(...) | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1188:17:1188:31 | ...::m2(...) | A | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1188:17:1188:33 | ... .a | | main.rs:1179:20:1179:22 | Tr3 | +| main.rs:1188:26:1188:30 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1188:26:1188:30 | &self | TRef | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1188:27:1188:30 | self | | main.rs:1179:5:1191:5 | Self [trait MyTrait3] | +| main.rs:1195:15:1195:18 | SelfParam | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1195:15:1195:18 | SelfParam | A | main.rs:1193:10:1193:10 | T | +| main.rs:1195:26:1197:9 | { ... } | | main.rs:1193:10:1193:10 | T | +| main.rs:1196:13:1196:16 | self | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1196:13:1196:16 | self | A | main.rs:1193:10:1193:10 | T | +| main.rs:1196:13:1196:18 | self.a | | main.rs:1193:10:1193:10 | T | +| main.rs:1204:15:1204:18 | SelfParam | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1204:15:1204:18 | SelfParam | A | main.rs:1202:10:1202:10 | T | +| main.rs:1204:35:1206:9 | { ... } | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1204:35:1206:9 | { ... } | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:13:1205:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1205:13:1205:33 | MyThing {...} | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:26:1205:29 | self | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1205:26:1205:29 | self | A | main.rs:1202:10:1202:10 | T | +| main.rs:1205:26:1205:31 | self.a | | main.rs:1202:10:1202:10 | T | +| main.rs:1213:44:1213:44 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1213:57:1215:5 | { ... } | | main.rs:1213:22:1213:23 | T1 | +| main.rs:1214:9:1214:9 | x | | main.rs:1213:26:1213:41 | T2 | +| main.rs:1214:9:1214:14 | x.m1() | | main.rs:1213:22:1213:23 | T1 | +| main.rs:1217:56:1217:56 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1217:62:1221:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1219:13:1219:13 | a | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1219:13:1219:13 | a | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1219:17:1219:17 | x | | main.rs:1217:39:1217:53 | T | +| main.rs:1219:17:1219:22 | x.m1() | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1219:17:1219:22 | x.m1() | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1220:18:1220:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1220:18:1220:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1220:18:1220:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1220:18:1220:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1220:26:1220:26 | a | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1220:26:1220:26 | a | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1223:16:1247:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1224:13:1224:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1224:13:1224:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1224:17:1224:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1224:17:1224:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1224:30:1224:31 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1225:13:1225:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:13:1225:13 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1225:17:1225:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1225:17:1225:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1225:30:1225:31 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1227:18:1227:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1227:18:1227:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1227:18:1227:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1227:18:1227:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1227:26:1227:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1227:26:1227:26 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1227:26:1227:31 | x.m1() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1228:18:1228:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1228:18:1228:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1228:18:1228:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1228:18:1228:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1228:26:1228:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1228:26:1228:26 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1228:26:1228:31 | y.m1() | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1230:13:1230:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:13:1230:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1230:17:1230:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1230:17:1230:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1230:30:1230:31 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1231:13:1231:13 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:13:1231:13 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1231:17:1231:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1231:17:1231:33 | MyThing {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1231:30:1231:31 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1233:18:1233:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1233:18:1233:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1233:18:1233:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1233:18:1233:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1233:26:1233:26 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1233:26:1233:26 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1233:26:1233:31 | x.m2() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1234:18:1234:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1234:18:1234:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1234:18:1234:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1234:18:1234:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1234:26:1234:26 | y | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1234:26:1234:26 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1234:26:1234:31 | y.m2() | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1236:13:1236:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1236:13:1236:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1236:17:1236:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1236:17:1236:34 | MyThing2 {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1236:31:1236:32 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1237:13:1237:13 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:13:1237:13 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1237:17:1237:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1237:17:1237:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1237:31:1237:32 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1239:18:1239:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1239:18:1239:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1239:18:1239:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1239:18:1239:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1239:26:1239:26 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1239:26:1239:26 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1239:26:1239:31 | x.m3() | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1240:18:1240:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1240:18:1240:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1240:18:1240:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1240:18:1240:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1240:26:1240:26 | y | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1240:26:1240:26 | y | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1240:26:1240:31 | y.m3() | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1242:13:1242:13 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1242:13:1242:13 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1242:17:1242:33 | MyThing {...} | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1242:17:1242:33 | MyThing {...} | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1242:30:1242:31 | S1 | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1243:13:1243:13 | s | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1243:17:1243:32 | call_trait_m1(...) | | main.rs:1155:5:1156:14 | S1 | +| main.rs:1243:31:1243:31 | x | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1243:31:1243:31 | x | A | main.rs:1155:5:1156:14 | S1 | +| main.rs:1245:13:1245:13 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1245:13:1245:13 | x | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1245:17:1245:34 | MyThing2 {...} | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1245:17:1245:34 | MyThing2 {...} | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1245:31:1245:32 | S2 | | main.rs:1157:5:1158:14 | S2 | +| main.rs:1246:13:1246:13 | s | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1246:13:1246:13 | s | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1246:17:1246:32 | call_trait_m1(...) | | main.rs:1145:5:1148:5 | MyThing | +| main.rs:1246:17:1246:32 | call_trait_m1(...) | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1246:31:1246:31 | x | | main.rs:1150:5:1153:5 | MyThing2 | +| main.rs:1246:31:1246:31 | x | A | main.rs:1157:5:1158:14 | S2 | +| main.rs:1263:22:1263:22 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1263:22:1263:22 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1263:35:1265:5 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1263:35:1265:5 | { ... } | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1264:9:1264:9 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1264:9:1264:9 | x | TRef | main.rs:1263:11:1263:19 | T | +| main.rs:1268:17:1268:20 | SelfParam | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1268:29:1270:9 | { ... } | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1269:13:1269:14 | S2 | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1273:21:1273:21 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1276:5:1278:5 | { ... } | | main.rs:1273:17:1273:18 | T2 | +| main.rs:1277:9:1277:9 | x | | main.rs:1273:13:1273:14 | T1 | +| main.rs:1277:9:1277:16 | x.into() | | main.rs:1273:17:1273:18 | T2 | +| main.rs:1280:16:1296:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1281:13:1281:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1281:17:1281:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:18:1282:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1282:18:1282:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1282:18:1282:31 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1282:18:1282:31 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1282:26:1282:31 | id(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1282:26:1282:31 | id(...) | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:29:1282:30 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1282:29:1282:30 | &x | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1282:30:1282:30 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1284:13:1284:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1284:17:1284:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:18:1285:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1285:18:1285:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1285:18:1285:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1285:18:1285:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1285:26:1285:37 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1285:26:1285:37 | id::<...>(...) | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:35:1285:36 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1285:35:1285:36 | &x | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1285:36:1285:36 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1287:13:1287:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1287:17:1287:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1289:18:1289:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1289:18:1289:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1289:18:1289:44 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1289:18:1289:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1289:26:1289:44 | id::<...>(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1289:26:1289:44 | id::<...>(...) | TRef | main.rs:1259:5:1259:25 | dyn Trait | +| main.rs:1289:42:1289:43 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1289:42:1289:43 | &x | TRef | main.rs:1253:5:1254:14 | S1 | +| main.rs:1289:43:1289:43 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1291:13:1291:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1291:17:1291:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1292:9:1292:25 | into::<...>(...) | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1292:24:1292:24 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1294:13:1294:13 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1294:17:1294:18 | S1 | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1295:13:1295:13 | y | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1295:21:1295:27 | into(...) | | main.rs:1256:5:1257:14 | S2 | +| main.rs:1295:26:1295:26 | x | | main.rs:1253:5:1254:14 | S1 | +| main.rs:1309:22:1309:25 | SelfParam | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1309:22:1309:25 | SelfParam | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1309:22:1309:25 | SelfParam | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1309:35:1316:9 | { ... } | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1310:13:1315:13 | match self { ... } | | file://:0:0:0:0 | ! | +| main.rs:1310:13:1315:13 | match self { ... } | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1310:19:1310:22 | self | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1310:19:1310:22 | self | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1310:19:1310:22 | self | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1311:17:1311:38 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1311:17:1311:38 | ...::PairNone(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1311:17:1311:38 | ...::PairNone(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1311:43:1311:82 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | & | +| main.rs:1311:50:1311:81 | "PairNone has no second elemen... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1311:50:1311:81 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1311:50:1311:81 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1311:50:1311:81 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1312:17:1312:38 | ...::PairFst(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1312:17:1312:38 | ...::PairFst(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1312:17:1312:38 | ...::PairFst(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1312:37:1312:37 | _ | | main.rs:1308:10:1308:12 | Fst | +| main.rs:1312:43:1312:81 | MacroExpr | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | & | +| main.rs:1312:50:1312:80 | "PairFst has no second element... | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1312:50:1312:80 | ...::panic_fmt(...) | | file://:0:0:0:0 | ! | +| main.rs:1312:50:1312:80 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:1312:50:1312:80 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1313:17:1313:40 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1313:17:1313:40 | ...::PairSnd(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1313:17:1313:40 | ...::PairSnd(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1313:37:1313:39 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1313:45:1313:47 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1314:17:1314:44 | ...::PairBoth(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1314:17:1314:44 | ...::PairBoth(...) | Fst | main.rs:1308:10:1308:12 | Fst | +| main.rs:1314:17:1314:44 | ...::PairBoth(...) | Snd | main.rs:1308:15:1308:17 | Snd | +| main.rs:1314:38:1314:38 | _ | | main.rs:1308:10:1308:12 | Fst | +| main.rs:1314:41:1314:43 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1314:49:1314:51 | snd | | main.rs:1308:15:1308:17 | Snd | +| main.rs:1340:10:1340:10 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1340:10:1340:10 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1340:10:1340:10 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1340:30:1343:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1341:13:1341:13 | x | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1341:17:1341:17 | t | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:17 | t | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:17 | t | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1341:17:1341:29 | t.unwrapSnd() | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1341:17:1341:29 | t.unwrapSnd() | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1341:17:1341:29 | t.unwrapSnd() | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1341:17:1341:41 | ... .unwrapSnd() | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1342:18:1342:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1342:18:1342:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1342:18:1342:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1342:18:1342:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1342:26:1342:26 | x | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1357:22:1357:25 | SelfParam | | main.rs:1355:5:1358:5 | Self [trait TraitWithAssocType] | +| main.rs:1365:22:1365:25 | SelfParam | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1365:22:1365:25 | SelfParam | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1365:44:1367:9 | { ... } | E | main.rs:1360:10:1360:15 | Output | +| main.rs:1365:44:1367:9 | { ... } | T | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:13:1366:22 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1366:13:1366:22 | Ok(...) | E | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:13:1366:22 | Ok(...) | T | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:16:1366:19 | self | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1366:16:1366:19 | self | GenT | main.rs:1360:10:1360:15 | Output | +| main.rs:1366:16:1366:21 | self.0 | | main.rs:1360:10:1360:15 | Output | +| main.rs:1370:16:1392:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1372:13:1372:14 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1372:13:1372:14 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:13:1372:14 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1372:26:1372:53 | ...::PairBoth(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1372:26:1372:53 | ...::PairBoth(...) | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:26:1372:53 | ...::PairBoth(...) | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1372:47:1372:48 | S1 | | main.rs:1319:5:1320:14 | S1 | +| main.rs:1372:51:1372:52 | S2 | | main.rs:1322:5:1323:14 | S2 | +| main.rs:1373:18:1373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1373:18:1373:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1373:18:1373:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1373:18:1373:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1373:26:1373:27 | p1 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1373:26:1373:27 | p1 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1373:26:1373:27 | p1 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1376:13:1376:14 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1376:13:1376:14 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1376:13:1376:14 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1376:26:1376:47 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1376:26:1376:47 | ...::PairNone(...) | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1376:26:1376:47 | ...::PairNone(...) | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1377:18:1377:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1377:18:1377:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1377:18:1377:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1377:18:1377:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1377:26:1377:27 | p2 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1377:26:1377:27 | p2 | Fst | main.rs:1319:5:1320:14 | S1 | +| main.rs:1377:26:1377:27 | p2 | Snd | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:13:1380:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1380:13:1380:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:13:1380:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1380:34:1380:56 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1380:34:1380:56 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1380:34:1380:56 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1380:54:1380:55 | S3 | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1381:18:1381:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1381:18:1381:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1381:18:1381:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1381:18:1381:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1381:26:1381:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1381:26:1381:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1381:26:1381:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1384:13:1384:14 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1384:13:1384:14 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:13:1384:14 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1384:35:1384:56 | ...::PairNone(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1384:35:1384:56 | ...::PairNone(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1384:35:1384:56 | ...::PairNone(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1385:18:1385:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1385:18:1385:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1385:18:1385:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1385:18:1385:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1385:26:1385:27 | p3 | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1385:26:1385:27 | p3 | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1385:26:1385:27 | p3 | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:9:1387:55 | g(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd.Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1387:11:1387:54 | ...::PairSnd(...) | Snd.Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:31:1387:53 | ...::PairSnd(...) | | main.rs:1300:5:1306:5 | PairOption | +| main.rs:1387:31:1387:53 | ...::PairSnd(...) | Fst | main.rs:1322:5:1323:14 | S2 | +| main.rs:1387:31:1387:53 | ...::PairSnd(...) | Snd | main.rs:1325:5:1326:14 | S3 | +| main.rs:1387:51:1387:52 | S3 | | main.rs:1325:5:1326:14 | S3 | +| main.rs:1389:13:1389:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1389:13:1389:13 | x | E | main.rs:1319:5:1320:14 | S1 | +| main.rs:1389:13:1389:13 | x | T | main.rs:1345:5:1345:34 | S4 | +| main.rs:1389:13:1389:13 | x | T.T41 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1389:13:1389:13 | x | T.T42 | main.rs:1347:5:1347:22 | S5 | +| main.rs:1389:13:1389:13 | x | T.T42.T5 | main.rs:1322:5:1323:14 | S2 | +| main.rs:1391:13:1391:13 | y | | {EXTERNAL LOCATION} | Result | +| main.rs:1391:13:1391:13 | y | E | {EXTERNAL LOCATION} | bool | +| main.rs:1391:13:1391:13 | y | T | {EXTERNAL LOCATION} | bool | +| main.rs:1391:17:1391:26 | GenS(...) | | main.rs:1353:5:1353:28 | GenS | +| main.rs:1391:17:1391:26 | GenS(...) | GenT | {EXTERNAL LOCATION} | bool | +| main.rs:1391:17:1391:38 | ... .get_input() | | {EXTERNAL LOCATION} | Result | +| main.rs:1391:17:1391:38 | ... .get_input() | E | {EXTERNAL LOCATION} | bool | +| main.rs:1391:17:1391:38 | ... .get_input() | T | {EXTERNAL LOCATION} | bool | +| main.rs:1391:22:1391:25 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1404:16:1404:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1404:16:1404:24 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1404:27:1404:31 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:21:1406:29 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1406:21:1406:29 | SelfParam | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1406:32:1406:36 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1406:42:1408:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1407:13:1407:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1407:13:1407:16 | self | TRefMut | main.rs:1402:5:1409:5 | Self [trait MyTrait] | +| main.rs:1407:13:1407:27 | self.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1407:22:1407:26 | value | | main.rs:1402:19:1402:19 | S | +| main.rs:1413:16:1413:24 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1413:16:1413:24 | SelfParam | TRefMut.T | main.rs:1411:10:1411:10 | T | +| main.rs:1413:27:1413:31 | value | | main.rs:1411:10:1411:10 | T | +| main.rs:1413:37:1413:38 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1417:26:1419:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1417:26:1419:9 | { ... } | T | main.rs:1416:10:1416:10 | T | +| main.rs:1418:13:1418:30 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1418:13:1418:30 | ...::MyNone(...) | T | main.rs:1416:10:1416:10 | T | +| main.rs:1423:20:1423:23 | SelfParam | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:20:1423:23 | SelfParam | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1423:41:1428:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1423:41:1428:9 | { ... } | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:13:1427:13 | match self { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:13:1427:13 | match self { ... } | T | main.rs:1422:10:1422:10 | T | +| main.rs:1424:19:1424:22 | self | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1424:19:1424:22 | self | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1425:17:1425:34 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1425:17:1425:34 | ...::MyNone(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1425:17:1425:34 | ...::MyNone(...) | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1425:39:1425:56 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1425:39:1425:56 | ...::MyNone(...) | T | main.rs:1422:10:1422:10 | T | +| main.rs:1426:17:1426:35 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:17:1426:35 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:17:1426:35 | ...::MySome(...) | T.T | main.rs:1422:10:1422:10 | T | +| main.rs:1426:34:1426:34 | x | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:34:1426:34 | x | T | main.rs:1422:10:1422:10 | T | +| main.rs:1426:40:1426:40 | x | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1426:40:1426:40 | x | T | main.rs:1422:10:1422:10 | T | +| main.rs:1434:16:1479:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1435:13:1435:14 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:13:1435:14 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1435:18:1435:37 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1435:18:1435:37 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1436:18:1436:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1436:18:1436:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1436:18:1436:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1436:18:1436:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1436:26:1436:27 | x1 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1436:26:1436:27 | x1 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1438:17:1438:18 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1438:17:1438:18 | x2 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1438:22:1438:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1438:22:1438:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1439:9:1439:10 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1439:9:1439:10 | x2 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1439:9:1439:17 | x2.set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1439:16:1439:16 | S | | main.rs:1431:5:1432:13 | S | | main.rs:1440:18:1440:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1440:18:1440:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1440:18:1440:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1440:18:1440:61 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1440:26:1440:61 | ...::flatten(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:26:1440:61 | ...::flatten(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1440:59:1440:60 | x6 | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:59:1440:60 | x6 | T | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1440:59:1440:60 | x6 | T.T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:13:1443:19 | from_if | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:13:1443:19 | from_if | T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:23:1447:9 | if ... {...} else {...} | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:23:1447:9 | if ... {...} else {...} | T | main.rs:1416:5:1417:13 | S | -| main.rs:1443:26:1443:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1443:26:1443:30 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1443:30:1443:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1443:32:1445:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1443:32:1445:9 | { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1444:13:1444:30 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1444:13:1444:30 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1445:16:1447:9 | { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1445:16:1447:9 | { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1446:13:1446:31 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1446:13:1446:31 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1446:30:1446:30 | S | | main.rs:1416:5:1417:13 | S | +| main.rs:1440:18:1440:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1440:18:1440:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1440:26:1440:27 | x2 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1440:26:1440:27 | x2 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1442:17:1442:18 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:17:1442:18 | x3 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1442:22:1442:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1442:22:1442:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1443:9:1443:10 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1443:9:1443:10 | x3 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1443:9:1443:22 | x3.call_set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1443:21:1443:21 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1444:18:1444:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1444:18:1444:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1444:18:1444:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1444:18:1444:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1444:26:1444:27 | x3 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1444:26:1444:27 | x3 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1446:17:1446:18 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:17:1446:18 | x4 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1446:22:1446:36 | ...::new(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1446:22:1446:36 | ...::new(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:9:1447:33 | ...::set(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1447:23:1447:29 | &mut x4 | | {EXTERNAL LOCATION} | &mut | +| main.rs:1447:23:1447:29 | &mut x4 | TRefMut | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:23:1447:29 | &mut x4 | TRefMut.T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:28:1447:29 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1447:28:1447:29 | x4 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1447:32:1447:32 | S | | main.rs:1431:5:1432:13 | S | | main.rs:1448:18:1448:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1448:18:1448:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1448:18:1448:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1448:18:1448:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1448:26:1448:32 | from_if | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1448:26:1448:32 | from_if | T | main.rs:1416:5:1417:13 | S | -| main.rs:1451:13:1451:22 | from_match | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1451:13:1451:22 | from_match | T | main.rs:1416:5:1417:13 | S | -| main.rs:1451:26:1454:9 | match ... { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1451:26:1454:9 | match ... { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1451:32:1451:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1451:32:1451:36 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1451:36:1451:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1452:13:1452:16 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1452:21:1452:38 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1452:21:1452:38 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1453:13:1453:17 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1453:22:1453:40 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1453:22:1453:40 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1453:39:1453:39 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1455:18:1455:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1455:18:1455:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1455:18:1455:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1455:18:1455:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1455:26:1455:35 | from_match | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1455:26:1455:35 | from_match | T | main.rs:1416:5:1417:13 | S | -| main.rs:1458:13:1458:21 | from_loop | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1458:13:1458:21 | from_loop | T | main.rs:1416:5:1417:13 | S | -| main.rs:1458:25:1463:9 | loop { ... } | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1458:25:1463:9 | loop { ... } | T | main.rs:1416:5:1417:13 | S | -| main.rs:1458:30:1463:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1459:13:1461:13 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1459:16:1459:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1459:16:1459:20 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1459:20:1459:20 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1459:22:1461:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1460:23:1460:40 | ...::MyNone(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1460:23:1460:40 | ...::MyNone(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1462:19:1462:37 | ...::MySome(...) | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1462:19:1462:37 | ...::MySome(...) | T | main.rs:1416:5:1417:13 | S | -| main.rs:1462:36:1462:36 | S | | main.rs:1416:5:1417:13 | S | -| main.rs:1464:18:1464:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1464:18:1464:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1464:18:1464:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1464:18:1464:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1464:26:1464:34 | from_loop | | main.rs:1381:5:1385:5 | MyOption | -| main.rs:1464:26:1464:34 | from_loop | T | main.rs:1416:5:1417:13 | S | -| main.rs:1482:15:1482:18 | SelfParam | | main.rs:1470:5:1471:19 | S | -| main.rs:1482:15:1482:18 | SelfParam | T | main.rs:1481:10:1481:10 | T | -| main.rs:1482:26:1484:9 | { ... } | | main.rs:1481:10:1481:10 | T | -| main.rs:1483:13:1483:16 | self | | main.rs:1470:5:1471:19 | S | -| main.rs:1483:13:1483:16 | self | T | main.rs:1481:10:1481:10 | T | -| main.rs:1483:13:1483:18 | self.0 | | main.rs:1481:10:1481:10 | T | -| main.rs:1486:15:1486:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1486:15:1486:19 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1486:15:1486:19 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1486:28:1488:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1486:28:1488:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1487:13:1487:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1487:13:1487:19 | &... | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1487:14:1487:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1487:14:1487:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1487:14:1487:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1487:14:1487:19 | self.0 | | main.rs:1481:10:1481:10 | T | -| main.rs:1490:15:1490:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1490:15:1490:25 | SelfParam | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1490:15:1490:25 | SelfParam | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1490:34:1492:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1490:34:1492:9 | { ... } | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1491:13:1491:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1491:13:1491:19 | &... | TRef | main.rs:1481:10:1481:10 | T | -| main.rs:1491:14:1491:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1491:14:1491:17 | self | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1491:14:1491:17 | self | TRef.T | main.rs:1481:10:1481:10 | T | -| main.rs:1491:14:1491:19 | self.0 | | main.rs:1481:10:1481:10 | T | -| main.rs:1496:29:1496:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1496:29:1496:33 | SelfParam | TRef | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1497:33:1497:36 | SelfParam | | main.rs:1495:5:1498:5 | Self [trait ATrait] | -| main.rs:1503:29:1503:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1503:29:1503:33 | SelfParam | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1503:43:1505:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1504:13:1504:22 | (...) | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:13:1504:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1504:14:1504:21 | * ... | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:15:1504:21 | (...) | | {EXTERNAL LOCATION} | & | -| main.rs:1504:15:1504:21 | (...) | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:16:1504:20 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1504:16:1504:20 | * ... | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1504:17:1504:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1504:17:1504:20 | self | TRef.TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:33:1508:36 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1508:33:1508:36 | SelfParam | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1508:46:1510:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:13:1509:19 | (...) | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1509:13:1509:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1509:14:1509:18 | * ... | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1509:15:1509:18 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1509:15:1509:18 | self | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1513:16:1563:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1514:13:1514:14 | x1 | | main.rs:1470:5:1471:19 | S | -| main.rs:1514:13:1514:14 | x1 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1514:18:1514:22 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1514:18:1514:22 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1514:20:1514:21 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1515:18:1515:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1515:18:1515:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1515:18:1515:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1515:18:1515:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1515:26:1515:27 | x1 | | main.rs:1470:5:1471:19 | S | -| main.rs:1515:26:1515:27 | x1 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1515:26:1515:32 | x1.m1() | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1517:13:1517:14 | x2 | | main.rs:1470:5:1471:19 | S | -| main.rs:1517:13:1517:14 | x2 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1517:18:1517:22 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1517:18:1517:22 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1517:20:1517:21 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1519:18:1519:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1519:18:1519:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1519:18:1519:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1519:18:1519:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1519:26:1519:27 | x2 | | main.rs:1470:5:1471:19 | S | -| main.rs:1519:26:1519:27 | x2 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1519:26:1519:32 | x2.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1519:26:1519:32 | x2.m2() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1520:18:1520:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1520:18:1520:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1520:18:1520:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1520:18:1520:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1520:26:1520:27 | x2 | | main.rs:1470:5:1471:19 | S | -| main.rs:1520:26:1520:27 | x2 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1520:26:1520:32 | x2.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1520:26:1520:32 | x2.m3() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1522:13:1522:14 | x3 | | main.rs:1470:5:1471:19 | S | -| main.rs:1522:13:1522:14 | x3 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1522:18:1522:22 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1522:18:1522:22 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1522:20:1522:21 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1524:18:1524:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1524:18:1524:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1524:18:1524:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1524:18:1524:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1524:26:1524:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1524:26:1524:41 | ...::m2(...) | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1524:38:1524:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1524:38:1524:40 | &x3 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1524:38:1524:40 | &x3 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1524:39:1524:40 | x3 | | main.rs:1470:5:1471:19 | S | -| main.rs:1524:39:1524:40 | x3 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:18:1525:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1525:18:1525:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1525:18:1525:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1525:18:1525:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1525:26:1525:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1525:26:1525:41 | ...::m3(...) | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:38:1525:40 | &x3 | | {EXTERNAL LOCATION} | & | -| main.rs:1525:38:1525:40 | &x3 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1525:38:1525:40 | &x3 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1525:39:1525:40 | x3 | | main.rs:1470:5:1471:19 | S | -| main.rs:1525:39:1525:40 | x3 | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:13:1527:14 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1527:13:1527:14 | x4 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1527:13:1527:14 | x4 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:18:1527:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1527:18:1527:23 | &... | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1527:18:1527:23 | &... | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:19:1527:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1527:19:1527:23 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1527:21:1527:22 | S2 | | main.rs:1473:5:1474:14 | S2 | +| main.rs:1448:18:1448:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1448:18:1448:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1448:26:1448:27 | x4 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1448:26:1448:27 | x4 | T | main.rs:1431:5:1432:13 | S | +| main.rs:1450:13:1450:14 | x5 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:13:1450:14 | x5 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:13:1450:14 | x5 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1450:18:1450:58 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:18:1450:58 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:18:1450:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1450:35:1450:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1450:35:1450:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1451:18:1451:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1451:18:1451:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1451:18:1451:37 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1451:18:1451:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1451:26:1451:27 | x5 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:26:1451:27 | x5 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:26:1451:27 | x5 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1451:26:1451:37 | x5.flatten() | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1451:26:1451:37 | x5.flatten() | T | main.rs:1431:5:1432:13 | S | +| main.rs:1453:13:1453:14 | x6 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:13:1453:14 | x6 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:13:1453:14 | x6 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1453:18:1453:58 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:18:1453:58 | ...::MySome(...) | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:18:1453:58 | ...::MySome(...) | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1453:35:1453:57 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1453:35:1453:57 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1454:18:1454:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1454:18:1454:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1454:18:1454:61 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1454:18:1454:61 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1454:26:1454:61 | ...::flatten(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:26:1454:61 | ...::flatten(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1454:59:1454:60 | x6 | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:59:1454:60 | x6 | T | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1454:59:1454:60 | x6 | T.T | main.rs:1431:5:1432:13 | S | +| main.rs:1457:13:1457:19 | from_if | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1457:13:1457:19 | from_if | T | main.rs:1431:5:1432:13 | S | +| main.rs:1457:23:1461:9 | if ... {...} else {...} | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1457:23:1461:9 | if ... {...} else {...} | T | main.rs:1431:5:1432:13 | S | +| main.rs:1457:26:1457:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1457:26:1457:30 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1457:30:1457:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1457:32:1459:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1457:32:1459:9 | { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1458:13:1458:30 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1458:13:1458:30 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1459:16:1461:9 | { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1459:16:1461:9 | { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1460:13:1460:31 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1460:13:1460:31 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1460:30:1460:30 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1462:18:1462:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1462:18:1462:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1462:18:1462:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1462:18:1462:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1462:26:1462:32 | from_if | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1462:26:1462:32 | from_if | T | main.rs:1431:5:1432:13 | S | +| main.rs:1465:13:1465:22 | from_match | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1465:13:1465:22 | from_match | T | main.rs:1431:5:1432:13 | S | +| main.rs:1465:26:1468:9 | match ... { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1465:26:1468:9 | match ... { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1465:32:1465:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1465:32:1465:36 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1465:36:1465:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1466:13:1466:16 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1466:21:1466:38 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1466:21:1466:38 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1467:13:1467:17 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1467:22:1467:40 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1467:22:1467:40 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1467:39:1467:39 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1469:18:1469:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1469:18:1469:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1469:18:1469:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1469:18:1469:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1469:26:1469:35 | from_match | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1469:26:1469:35 | from_match | T | main.rs:1431:5:1432:13 | S | +| main.rs:1472:13:1472:21 | from_loop | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1472:13:1472:21 | from_loop | T | main.rs:1431:5:1432:13 | S | +| main.rs:1472:25:1477:9 | loop { ... } | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1472:25:1477:9 | loop { ... } | T | main.rs:1431:5:1432:13 | S | +| main.rs:1472:30:1477:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1473:13:1475:13 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1473:16:1473:16 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1473:16:1473:20 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1473:20:1473:20 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1473:22:1475:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1474:23:1474:40 | ...::MyNone(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1474:23:1474:40 | ...::MyNone(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1476:19:1476:37 | ...::MySome(...) | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1476:19:1476:37 | ...::MySome(...) | T | main.rs:1431:5:1432:13 | S | +| main.rs:1476:36:1476:36 | S | | main.rs:1431:5:1432:13 | S | +| main.rs:1478:18:1478:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1478:18:1478:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1478:18:1478:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1478:18:1478:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1478:26:1478:34 | from_loop | | main.rs:1396:5:1400:5 | MyOption | +| main.rs:1478:26:1478:34 | from_loop | T | main.rs:1431:5:1432:13 | S | +| main.rs:1496:15:1496:18 | SelfParam | | main.rs:1484:5:1485:19 | S | +| main.rs:1496:15:1496:18 | SelfParam | T | main.rs:1495:10:1495:10 | T | +| main.rs:1496:26:1498:9 | { ... } | | main.rs:1495:10:1495:10 | T | +| main.rs:1497:13:1497:16 | self | | main.rs:1484:5:1485:19 | S | +| main.rs:1497:13:1497:16 | self | T | main.rs:1495:10:1495:10 | T | +| main.rs:1497:13:1497:18 | self.0 | | main.rs:1495:10:1495:10 | T | +| main.rs:1500:15:1500:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1500:15:1500:19 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1500:15:1500:19 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1500:28:1502:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1500:28:1502:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1501:13:1501:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1501:13:1501:19 | &... | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1501:14:1501:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1501:14:1501:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1501:14:1501:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1501:14:1501:19 | self.0 | | main.rs:1495:10:1495:10 | T | +| main.rs:1504:15:1504:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1504:15:1504:25 | SelfParam | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1504:15:1504:25 | SelfParam | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1504:34:1506:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1504:34:1506:9 | { ... } | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1505:13:1505:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1505:13:1505:19 | &... | TRef | main.rs:1495:10:1495:10 | T | +| main.rs:1505:14:1505:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1505:14:1505:17 | self | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1505:14:1505:17 | self | TRef.T | main.rs:1495:10:1495:10 | T | +| main.rs:1505:14:1505:19 | self.0 | | main.rs:1495:10:1495:10 | T | +| main.rs:1510:29:1510:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1510:29:1510:33 | SelfParam | TRef | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1511:33:1511:36 | SelfParam | | main.rs:1509:5:1512:5 | Self [trait ATrait] | +| main.rs:1517:29:1517:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1517:29:1517:33 | SelfParam | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1517:43:1519:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1518:13:1518:22 | (...) | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:13:1518:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1518:14:1518:21 | * ... | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:15:1518:21 | (...) | | {EXTERNAL LOCATION} | & | +| main.rs:1518:15:1518:21 | (...) | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:16:1518:20 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1518:16:1518:20 | * ... | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1518:17:1518:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1518:17:1518:20 | self | TRef.TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:33:1522:36 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1522:33:1522:36 | SelfParam | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1522:46:1524:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1523:13:1523:19 | (...) | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1523:13:1523:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1523:14:1523:18 | * ... | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1523:15:1523:18 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1523:15:1523:18 | self | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1527:16:1577:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1528:13:1528:14 | x1 | | main.rs:1484:5:1485:19 | S | +| main.rs:1528:13:1528:14 | x1 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1528:18:1528:22 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1528:18:1528:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1528:20:1528:21 | S2 | | main.rs:1487:5:1488:14 | S2 | | main.rs:1529:18:1529:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1529:18:1529:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1529:18:1529:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1529:18:1529:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1529:26:1529:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1529:26:1529:27 | x4 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1529:26:1529:27 | x4 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1529:26:1529:32 | x4.m2() | | {EXTERNAL LOCATION} | & | -| main.rs:1529:26:1529:32 | x4.m2() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1530:18:1530:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1530:18:1530:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1530:18:1530:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1530:18:1530:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1530:26:1530:27 | x4 | | {EXTERNAL LOCATION} | & | -| main.rs:1530:26:1530:27 | x4 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1530:26:1530:27 | x4 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1530:26:1530:32 | x4.m3() | | {EXTERNAL LOCATION} | & | -| main.rs:1530:26:1530:32 | x4.m3() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:13:1532:14 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1532:13:1532:14 | x5 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1532:13:1532:14 | x5 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:18:1532:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1532:18:1532:23 | &... | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1532:18:1532:23 | &... | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:19:1532:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1532:19:1532:23 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1532:21:1532:22 | S2 | | main.rs:1473:5:1474:14 | S2 | +| main.rs:1529:26:1529:27 | x1 | | main.rs:1484:5:1485:19 | S | +| main.rs:1529:26:1529:27 | x1 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1529:26:1529:32 | x1.m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1531:13:1531:14 | x2 | | main.rs:1484:5:1485:19 | S | +| main.rs:1531:13:1531:14 | x2 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1531:18:1531:22 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1531:18:1531:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1531:20:1531:21 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1533:18:1533:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1533:18:1533:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1533:18:1533:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1533:18:1533:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1533:26:1533:27 | x2 | | main.rs:1484:5:1485:19 | S | +| main.rs:1533:26:1533:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1533:26:1533:32 | x2.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1533:26:1533:32 | x2.m2() | TRef | main.rs:1487:5:1488:14 | S2 | | main.rs:1534:18:1534:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1534:18:1534:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1534:18:1534:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1534:18:1534:32 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1534:26:1534:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1534:26:1534:27 | x5 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1534:26:1534:27 | x5 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1534:26:1534:32 | x5.m1() | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1535:18:1535:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1535:18:1535:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1535:18:1535:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1535:18:1535:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1535:26:1535:27 | x5 | | {EXTERNAL LOCATION} | & | -| main.rs:1535:26:1535:27 | x5 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1535:26:1535:27 | x5 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1535:26:1535:29 | x5.0 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:13:1537:14 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1537:13:1537:14 | x6 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1537:13:1537:14 | x6 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:18:1537:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1537:18:1537:23 | &... | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1537:18:1537:23 | &... | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:19:1537:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1537:19:1537:23 | S(...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1537:21:1537:22 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:18:1540:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1540:18:1540:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1540:18:1540:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1540:18:1540:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1540:26:1540:30 | (...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1540:26:1540:30 | (...) | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:26:1540:35 | ... .m1() | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:27:1540:29 | * ... | | main.rs:1470:5:1471:19 | S | -| main.rs:1540:27:1540:29 | * ... | T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1540:28:1540:29 | x6 | | {EXTERNAL LOCATION} | & | -| main.rs:1540:28:1540:29 | x6 | TRef | main.rs:1470:5:1471:19 | S | -| main.rs:1540:28:1540:29 | x6 | TRef.T | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:13:1542:14 | x7 | | main.rs:1470:5:1471:19 | S | -| main.rs:1542:13:1542:14 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1542:13:1542:14 | x7 | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:18:1542:23 | S(...) | | main.rs:1470:5:1471:19 | S | -| main.rs:1542:18:1542:23 | S(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:1542:18:1542:23 | S(...) | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:20:1542:22 | &S2 | | {EXTERNAL LOCATION} | & | -| main.rs:1542:20:1542:22 | &S2 | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1542:21:1542:22 | S2 | | main.rs:1473:5:1474:14 | S2 | -| main.rs:1545:13:1545:13 | t | | {EXTERNAL LOCATION} | & | -| main.rs:1545:13:1545:13 | t | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1545:17:1545:18 | x7 | | main.rs:1470:5:1471:19 | S | -| main.rs:1545:17:1545:18 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1545:17:1545:18 | x7 | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1545:17:1545:23 | x7.m1() | | {EXTERNAL LOCATION} | & | -| main.rs:1545:17:1545:23 | x7.m1() | TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1546:18:1546:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1546:18:1546:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1546:18:1546:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1546:18:1546:27 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1546:26:1546:27 | x7 | | main.rs:1470:5:1471:19 | S | -| main.rs:1546:26:1546:27 | x7 | T | {EXTERNAL LOCATION} | & | -| main.rs:1546:26:1546:27 | x7 | T.TRef | main.rs:1473:5:1474:14 | S2 | -| main.rs:1548:13:1548:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1548:26:1548:32 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1548:26:1548:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1548:26:1548:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1552:13:1552:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1552:13:1552:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1552:17:1552:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1552:17:1552:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1552:17:1552:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1554:13:1554:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1554:13:1554:20 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1554:24:1554:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1554:24:1554:39 | &... | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1554:25:1554:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1554:36:1554:37 | 37 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1556:13:1556:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1556:17:1556:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1556:17:1556:24 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1556:17:1556:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1557:18:1557:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1557:18:1557:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1557:18:1557:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1557:18:1557:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1557:26:1557:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1560:13:1560:20 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1560:13:1560:20 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1560:24:1560:39 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1560:24:1560:39 | &... | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1560:25:1560:39 | MyInt {...} | | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1560:36:1560:37 | 38 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1561:13:1561:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1561:17:1561:24 | my_thing | | {EXTERNAL LOCATION} | & | -| main.rs:1561:17:1561:24 | my_thing | TRef | main.rs:1476:5:1479:5 | MyInt | -| main.rs:1561:17:1561:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1562:18:1562:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1562:18:1562:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1562:18:1562:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1562:18:1562:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1562:26:1562:26 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1569:16:1569:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1569:16:1569:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:16:1572:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1572:16:1572:20 | SelfParam | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1572:32:1574:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1572:32:1574:9 | { ... } | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1573:13:1573:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1573:13:1573:16 | self | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1573:13:1573:22 | self.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1573:13:1573:22 | self.foo() | TRef | main.rs:1567:5:1575:5 | Self [trait MyTrait] | -| main.rs:1581:16:1581:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1581:16:1581:20 | SelfParam | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1581:36:1583:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1581:36:1583:9 | { ... } | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1582:13:1582:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1582:13:1582:16 | self | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1586:16:1589:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1587:13:1587:13 | x | | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1587:17:1587:24 | MyStruct | | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1588:9:1588:9 | x | | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1588:9:1588:15 | x.bar() | | {EXTERNAL LOCATION} | & | -| main.rs:1588:9:1588:15 | x.bar() | TRef | main.rs:1577:5:1577:20 | MyStruct | -| main.rs:1598:16:1598:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1598:16:1598:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:16:1598:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1598:32:1600:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1598:32:1600:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1598:32:1600:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1599:13:1599:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1599:13:1599:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1599:13:1599:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:16:1602:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1602:16:1602:20 | SelfParam | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:16:1602:20 | SelfParam | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:23:1602:23 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1602:23:1602:23 | x | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:23:1602:23 | x | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1602:42:1604:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1602:42:1604:9 | { ... } | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1602:42:1604:9 | { ... } | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1603:13:1603:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1603:13:1603:16 | self | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1603:13:1603:16 | self | TRef.T | main.rs:1597:10:1597:10 | T | -| main.rs:1607:16:1613:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1608:13:1608:13 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1608:13:1608:13 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1608:17:1608:27 | MyStruct(...) | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1608:17:1608:27 | MyStruct(...) | T | main.rs:1593:5:1593:13 | S | -| main.rs:1608:26:1608:26 | S | | main.rs:1593:5:1593:13 | S | -| main.rs:1609:9:1609:9 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1609:9:1609:9 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1609:9:1609:15 | x.foo() | | {EXTERNAL LOCATION} | & | -| main.rs:1609:9:1609:15 | x.foo() | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1609:9:1609:15 | x.foo() | TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1610:13:1610:13 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1610:13:1610:13 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1610:17:1610:27 | MyStruct(...) | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1610:17:1610:27 | MyStruct(...) | T | main.rs:1593:5:1593:13 | S | -| main.rs:1610:26:1610:26 | S | | main.rs:1593:5:1593:13 | S | -| main.rs:1612:9:1612:9 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:9:1612:9 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:9:1612:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1612:9:1612:18 | x.bar(...) | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:9:1612:18 | x.bar(...) | TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:15:1612:17 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1612:15:1612:17 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1612:15:1612:17 | &... | TRef.TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:15:1612:17 | &... | TRef.TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:16:1612:17 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1612:16:1612:17 | &x | TRef | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:16:1612:17 | &x | TRef.T | main.rs:1593:5:1593:13 | S | -| main.rs:1612:17:1612:17 | x | | main.rs:1595:5:1595:26 | MyStruct | -| main.rs:1612:17:1612:17 | x | T | main.rs:1593:5:1593:13 | S | -| main.rs:1623:17:1623:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1623:17:1623:25 | SelfParam | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1623:28:1625:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1624:13:1624:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:13:1624:16 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1624:13:1624:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1624:13:1624:34 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1624:25:1624:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1624:26:1624:29 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1624:26:1624:29 | self | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1624:26:1624:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1631:15:1631:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1631:15:1631:19 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1631:31:1633:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1631:31:1633:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:13:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:13:1632:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:13:1632:19 | &... | TRef.TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:14:1632:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:14:1632:19 | &... | TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:15:1632:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:15:1632:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1632:15:1632:19 | &self | TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1632:16:1632:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1632:16:1632:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:15:1635:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1635:15:1635:25 | SelfParam | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1635:37:1637:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1635:37:1637:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:13:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:13:1636:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:13:1636:19 | &... | TRef.TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:14:1636:19 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:14:1636:19 | &... | TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:15:1636:19 | &self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:15:1636:19 | &self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1636:15:1636:19 | &self | TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1636:16:1636:19 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1636:16:1636:19 | self | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:15:1639:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1639:15:1639:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1639:34:1641:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1639:34:1641:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1640:13:1640:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1640:13:1640:13 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:15:1643:15 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1643:15:1643:15 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1643:34:1645:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1643:34:1645:9 | { ... } | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:13:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:13:1644:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:13:1644:16 | &... | TRef.TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:14:1644:16 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:14:1644:16 | &... | TRef.TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:15:1644:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:15:1644:16 | &x | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1644:15:1644:16 | &x | TRef.TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1644:16:1644:16 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1644:16:1644:16 | x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1648:16:1661:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1649:13:1649:13 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1649:17:1649:20 | S {...} | | main.rs:1628:5:1628:13 | S | -| main.rs:1650:9:1650:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1650:9:1650:14 | x.f1() | | {EXTERNAL LOCATION} | & | -| main.rs:1650:9:1650:14 | x.f1() | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1651:9:1651:9 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1651:9:1651:14 | x.f2() | | {EXTERNAL LOCATION} | & | -| main.rs:1651:9:1651:14 | x.f2() | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:9:1652:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1652:9:1652:17 | ...::f3(...) | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:15:1652:16 | &x | | {EXTERNAL LOCATION} | & | -| main.rs:1652:15:1652:16 | &x | TRef | main.rs:1628:5:1628:13 | S | -| main.rs:1652:16:1652:16 | x | | main.rs:1628:5:1628:13 | S | -| main.rs:1654:13:1654:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1654:17:1654:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1654:18:1654:24 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1654:18:1654:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1654:19:1654:24 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1654:19:1654:24 | &... | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1654:19:1654:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1654:20:1654:24 | &true | | {EXTERNAL LOCATION} | & | -| main.rs:1654:20:1654:24 | &true | TRef | {EXTERNAL LOCATION} | bool | -| main.rs:1654:21:1654:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1658:17:1658:20 | flag | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1658:24:1658:41 | ...::default(...) | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1659:9:1659:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1659:22:1659:30 | &mut flag | | {EXTERNAL LOCATION} | & | -| main.rs:1659:22:1659:30 | &mut flag | TRef | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1659:27:1659:30 | flag | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1660:18:1660:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1660:18:1660:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1660:18:1660:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1660:18:1660:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1660:26:1660:29 | flag | | main.rs:1617:5:1620:5 | MyFlag | -| main.rs:1675:43:1678:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1675:43:1678:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1675:43:1678:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:13:1676:13 | x | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:17:1676:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1676:17:1676:30 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:17:1676:31 | TryExpr | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1676:28:1676:29 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1677:9:1677:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1677:9:1677:22 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1677:9:1677:22 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1677:20:1677:21 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1682:46:1686:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1682:46:1686:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1682:46:1686:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1683:13:1683:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1683:13:1683:13 | x | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1683:17:1683:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1683:17:1683:30 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1683:28:1683:29 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1684:13:1684:13 | y | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1684:17:1684:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1684:17:1684:17 | x | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1684:17:1684:18 | TryExpr | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1685:9:1685:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1685:9:1685:22 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1685:9:1685:22 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1685:20:1685:21 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1690:40:1695:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1690:40:1695:5 | { ... } | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1690:40:1695:5 | { ... } | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:13:1691:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:13:1691:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1691:13:1691:13 | x | T.T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:17:1691:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:17:1691:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1691:17:1691:42 | ...::Ok(...) | T.T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:28:1691:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1691:28:1691:41 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1691:39:1691:40 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1693:17:1693:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:17:1693:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1693:17:1693:17 | x | T.T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1693:17:1693:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:17:1693:18 | TryExpr | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1693:17:1693:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1693:24:1693:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1693:24:1693:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1694:9:1694:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1694:9:1694:22 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1694:9:1694:22 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1694:20:1694:21 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:30:1699:34 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:30:1699:34 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1699:69:1706:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1699:69:1706:5 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1699:69:1706:5 | { ... } | T | main.rs:1699:20:1699:27 | T | -| main.rs:1700:13:1700:17 | value | | main.rs:1699:20:1699:27 | T | -| main.rs:1700:21:1700:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1700:21:1700:25 | input | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1700:21:1700:25 | input | T | main.rs:1699:20:1699:27 | T | -| main.rs:1700:21:1700:26 | TryExpr | | main.rs:1699:20:1699:27 | T | -| main.rs:1701:22:1701:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1701:22:1701:38 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1701:22:1701:38 | ...::Ok(...) | T | main.rs:1699:20:1699:27 | T | -| main.rs:1701:22:1704:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1701:22:1704:10 | ... .and_then(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1701:33:1701:37 | value | | main.rs:1699:20:1699:27 | T | -| main.rs:1701:49:1704:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:1701:49:1704:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:1701:49:1704:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | -| main.rs:1701:49:1704:9 | \|...\| ... | dyn(Output).E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1701:53:1704:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1701:53:1704:9 | { ... } | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1702:22:1702:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1702:22:1702:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1702:22:1702:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1702:22:1702:30 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1703:13:1703:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1703:13:1703:34 | ...::Ok::<...>(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1705:9:1705:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1705:9:1705:23 | ...::Err(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1705:9:1705:23 | ...::Err(...) | T | main.rs:1699:20:1699:27 | T | -| main.rs:1705:21:1705:22 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1709:16:1725:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1710:9:1712:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1710:16:1710:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1710:16:1710:33 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:16:1710:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:27:1710:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:37:1710:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1710:37:1710:52 | try_same_error(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:37:1710:52 | try_same_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1710:54:1712:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1711:22:1711:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1711:22:1711:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1711:22:1711:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1711:30:1711:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:9:1716:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1714:16:1714:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:16:1714:33 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1714:16:1714:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:27:1714:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:37:1714:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1714:37:1714:55 | try_convert_error(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1714:37:1714:55 | try_convert_error(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1714:57:1716:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1715:22:1715:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1715:22:1715:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1715:22:1715:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1715:30:1715:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:9:1720:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1718:16:1718:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1718:16:1718:33 | ...::Ok(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1718:16:1718:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:27:1718:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:37:1718:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1718:37:1718:49 | try_chained(...) | E | main.rs:1670:5:1671:14 | S2 | -| main.rs:1718:37:1718:49 | try_chained(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1718:51:1720:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1719:22:1719:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1719:22:1719:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1719:22:1719:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1719:30:1719:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:9:1724:9 | if ... {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1722:16:1722:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:16:1722:33 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:16:1722:33 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:27:1722:32 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:37:1722:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:37:1722:63 | try_complex(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:37:1722:63 | try_complex(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:49:1722:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1722:49:1722:62 | ...::Ok(...) | E | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:49:1722:62 | ...::Ok(...) | T | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:60:1722:61 | S1 | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1722:65:1724:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:1723:22:1723:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1723:22:1723:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:1723:22:1723:35 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1723:30:1723:35 | result | | main.rs:1667:5:1668:14 | S1 | -| main.rs:1729:16:1820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1730:13:1730:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1730:22:1730:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:13:1731:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1731:17:1731:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:13:1732:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:17:1732:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1732:21:1732:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:13:1733:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:17:1733:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1733:17:1733:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1734:13:1734:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1734:17:1734:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1735:13:1735:17 | hello | | {EXTERNAL LOCATION} | & | -| main.rs:1735:13:1735:17 | hello | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1735:21:1735:27 | "Hello" | | {EXTERNAL LOCATION} | & | -| main.rs:1735:21:1735:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:1736:13:1736:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1736:17:1736:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1737:13:1737:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1737:17:1737:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:13:1738:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1738:17:1738:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1741:26:1741:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1741:26:1741:30 | SelfParam | TRef | main.rs:1740:9:1744:9 | Self [trait MyTrait] | -| main.rs:1747:26:1747:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1747:26:1747:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1747:26:1747:30 | SelfParam | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1747:39:1749:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1747:39:1749:13 | { ... } | TRef | main.rs:1746:14:1746:23 | T | -| main.rs:1748:17:1748:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1748:17:1748:20 | self | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1748:17:1748:20 | self | TRef.TArray | main.rs:1746:14:1746:23 | T | -| main.rs:1748:17:1748:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | -| main.rs:1748:17:1748:36 | ... .unwrap() | TRef | main.rs:1746:14:1746:23 | T | -| main.rs:1748:26:1748:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1751:31:1753:13 | { ... } | | main.rs:1746:14:1746:23 | T | -| main.rs:1752:17:1752:28 | ...::default(...) | | main.rs:1746:14:1746:23 | T | -| main.rs:1756:13:1756:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1756:13:1756:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:17:1756:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1756:17:1756:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:17:1756:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1756:17:1756:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:18:1756:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:21:1756:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1756:24:1756:24 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:13:1757:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1757:13:1757:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:17:1757:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1757:17:1757:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:22:1757:22 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:37:1757:46 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1757:37:1757:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:37:1757:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:38:1757:46 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1757:38:1757:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:39:1757:39 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:42:1757:42 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1757:45:1757:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:13:1758:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:17:1758:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1758:24:1758:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1534:26:1534:27 | x2 | | main.rs:1484:5:1485:19 | S | +| main.rs:1534:26:1534:27 | x2 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1534:26:1534:32 | x2.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1534:26:1534:32 | x2.m3() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1536:13:1536:14 | x3 | | main.rs:1484:5:1485:19 | S | +| main.rs:1536:13:1536:14 | x3 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1536:18:1536:22 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1536:18:1536:22 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1536:20:1536:21 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:18:1538:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1538:18:1538:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1538:18:1538:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1538:18:1538:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1538:26:1538:41 | ...::m2(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1538:26:1538:41 | ...::m2(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:38:1538:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1538:38:1538:40 | &x3 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1538:38:1538:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1538:39:1538:40 | x3 | | main.rs:1484:5:1485:19 | S | +| main.rs:1538:39:1538:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:18:1539:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1539:18:1539:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1539:18:1539:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1539:18:1539:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1539:26:1539:41 | ...::m3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1539:26:1539:41 | ...::m3(...) | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:38:1539:40 | &x3 | | {EXTERNAL LOCATION} | & | +| main.rs:1539:38:1539:40 | &x3 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1539:38:1539:40 | &x3 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1539:39:1539:40 | x3 | | main.rs:1484:5:1485:19 | S | +| main.rs:1539:39:1539:40 | x3 | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:13:1541:14 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1541:13:1541:14 | x4 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1541:13:1541:14 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:18:1541:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1541:18:1541:23 | &... | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1541:18:1541:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:19:1541:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1541:19:1541:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1541:21:1541:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1543:18:1543:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1543:18:1543:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1543:18:1543:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1543:18:1543:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1543:26:1543:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1543:26:1543:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1543:26:1543:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1543:26:1543:32 | x4.m2() | | {EXTERNAL LOCATION} | & | +| main.rs:1543:26:1543:32 | x4.m2() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1544:18:1544:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1544:18:1544:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1544:18:1544:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1544:18:1544:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1544:26:1544:27 | x4 | | {EXTERNAL LOCATION} | & | +| main.rs:1544:26:1544:27 | x4 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1544:26:1544:27 | x4 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1544:26:1544:32 | x4.m3() | | {EXTERNAL LOCATION} | & | +| main.rs:1544:26:1544:32 | x4.m3() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:13:1546:14 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1546:13:1546:14 | x5 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1546:13:1546:14 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:18:1546:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1546:18:1546:23 | &... | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1546:18:1546:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:19:1546:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1546:19:1546:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1546:21:1546:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1548:18:1548:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1548:18:1548:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1548:18:1548:32 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1548:18:1548:32 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1548:26:1548:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1548:26:1548:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1548:26:1548:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1548:26:1548:32 | x5.m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1549:18:1549:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1549:18:1549:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1549:18:1549:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1549:18:1549:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1549:26:1549:27 | x5 | | {EXTERNAL LOCATION} | & | +| main.rs:1549:26:1549:27 | x5 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1549:26:1549:27 | x5 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1549:26:1549:29 | x5.0 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:13:1551:14 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1551:13:1551:14 | x6 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1551:13:1551:14 | x6 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:18:1551:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1551:18:1551:23 | &... | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1551:18:1551:23 | &... | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:19:1551:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1551:19:1551:23 | S(...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1551:21:1551:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:18:1554:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1554:18:1554:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1554:18:1554:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1554:18:1554:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1554:26:1554:30 | (...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1554:26:1554:30 | (...) | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:26:1554:35 | ... .m1() | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:27:1554:29 | * ... | | main.rs:1484:5:1485:19 | S | +| main.rs:1554:27:1554:29 | * ... | T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1554:28:1554:29 | x6 | | {EXTERNAL LOCATION} | & | +| main.rs:1554:28:1554:29 | x6 | TRef | main.rs:1484:5:1485:19 | S | +| main.rs:1554:28:1554:29 | x6 | TRef.T | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:13:1556:14 | x7 | | main.rs:1484:5:1485:19 | S | +| main.rs:1556:13:1556:14 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1556:13:1556:14 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:18:1556:23 | S(...) | | main.rs:1484:5:1485:19 | S | +| main.rs:1556:18:1556:23 | S(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1556:18:1556:23 | S(...) | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:20:1556:22 | &S2 | | {EXTERNAL LOCATION} | & | +| main.rs:1556:20:1556:22 | &S2 | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1556:21:1556:22 | S2 | | main.rs:1487:5:1488:14 | S2 | +| main.rs:1559:13:1559:13 | t | | {EXTERNAL LOCATION} | & | +| main.rs:1559:13:1559:13 | t | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1559:17:1559:18 | x7 | | main.rs:1484:5:1485:19 | S | +| main.rs:1559:17:1559:18 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:18 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1559:17:1559:23 | x7.m1() | | {EXTERNAL LOCATION} | & | +| main.rs:1559:17:1559:23 | x7.m1() | TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1560:18:1560:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1560:18:1560:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1560:18:1560:27 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1560:18:1560:27 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1560:26:1560:27 | x7 | | main.rs:1484:5:1485:19 | S | +| main.rs:1560:26:1560:27 | x7 | T | {EXTERNAL LOCATION} | & | +| main.rs:1560:26:1560:27 | x7 | T.TRef | main.rs:1487:5:1488:14 | S2 | +| main.rs:1562:13:1562:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1562:26:1562:32 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1562:26:1562:32 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1562:26:1562:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1566:13:1566:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1566:13:1566:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1566:17:1566:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1566:17:1566:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1566:17:1566:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1568:13:1568:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1568:13:1568:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1568:24:1568:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1568:24:1568:39 | &... | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1568:25:1568:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1568:36:1568:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1570:13:1570:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1570:17:1570:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1570:17:1570:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1570:17:1570:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:18:1571:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1571:18:1571:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1571:18:1571:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1571:18:1571:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1571:26:1571:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1574:13:1574:20 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1574:13:1574:20 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1574:24:1574:39 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1574:24:1574:39 | &... | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1574:25:1574:39 | MyInt {...} | | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1574:36:1574:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1575:13:1575:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1575:17:1575:24 | my_thing | | {EXTERNAL LOCATION} | & | +| main.rs:1575:17:1575:24 | my_thing | TRef | main.rs:1490:5:1493:5 | MyInt | +| main.rs:1575:17:1575:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1576:18:1576:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1576:18:1576:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1576:18:1576:26 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1576:18:1576:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1576:26:1576:26 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1583:16:1583:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1583:16:1583:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:16:1586:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1586:16:1586:20 | SelfParam | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1586:32:1588:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1586:32:1588:9 | { ... } | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1587:13:1587:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:16 | self | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1587:13:1587:22 | self.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1587:13:1587:22 | self.foo() | TRef | main.rs:1581:5:1589:5 | Self [trait MyTrait] | +| main.rs:1595:16:1595:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1595:16:1595:20 | SelfParam | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1595:36:1597:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1595:36:1597:9 | { ... } | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1596:13:1596:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1596:13:1596:16 | self | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1600:16:1603:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1601:13:1601:13 | x | | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1601:17:1601:24 | MyStruct | | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1602:9:1602:9 | x | | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1602:9:1602:15 | x.bar() | | {EXTERNAL LOCATION} | & | +| main.rs:1602:9:1602:15 | x.bar() | TRef | main.rs:1591:5:1591:20 | MyStruct | +| main.rs:1612:16:1612:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1612:16:1612:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:16:1612:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1612:32:1614:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1612:32:1614:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1612:32:1614:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1613:13:1613:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1613:13:1613:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1613:13:1613:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:16:1616:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1616:16:1616:20 | SelfParam | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:16:1616:20 | SelfParam | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:23:1616:23 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1616:23:1616:23 | x | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:23:1616:23 | x | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1616:42:1618:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1616:42:1618:9 | { ... } | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1616:42:1618:9 | { ... } | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1617:13:1617:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1617:13:1617:16 | self | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1617:13:1617:16 | self | TRef.T | main.rs:1611:10:1611:10 | T | +| main.rs:1621:16:1627:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1622:13:1622:13 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1622:13:1622:13 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1622:17:1622:27 | MyStruct(...) | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1622:17:1622:27 | MyStruct(...) | T | main.rs:1607:5:1607:13 | S | +| main.rs:1622:26:1622:26 | S | | main.rs:1607:5:1607:13 | S | +| main.rs:1623:9:1623:9 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1623:9:1623:9 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1623:9:1623:15 | x.foo() | | {EXTERNAL LOCATION} | & | +| main.rs:1623:9:1623:15 | x.foo() | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1623:9:1623:15 | x.foo() | TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1624:13:1624:13 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1624:13:1624:13 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1624:17:1624:27 | MyStruct(...) | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1624:17:1624:27 | MyStruct(...) | T | main.rs:1607:5:1607:13 | S | +| main.rs:1624:26:1624:26 | S | | main.rs:1607:5:1607:13 | S | +| main.rs:1626:9:1626:9 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:9:1626:9 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:9:1626:18 | x.bar(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1626:9:1626:18 | x.bar(...) | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:9:1626:18 | x.bar(...) | TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:15:1626:17 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1626:15:1626:17 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1626:15:1626:17 | &... | TRef.TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:15:1626:17 | &... | TRef.TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:16:1626:17 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1626:16:1626:17 | &x | TRef | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:16:1626:17 | &x | TRef.T | main.rs:1607:5:1607:13 | S | +| main.rs:1626:17:1626:17 | x | | main.rs:1609:5:1609:26 | MyStruct | +| main.rs:1626:17:1626:17 | x | T | main.rs:1607:5:1607:13 | S | +| main.rs:1637:17:1637:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1637:17:1637:25 | SelfParam | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1637:28:1639:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1638:13:1638:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:13:1638:16 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:13:1638:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1638:13:1638:34 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1638:25:1638:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1638:26:1638:29 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1638:26:1638:29 | self | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1638:26:1638:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1645:15:1645:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1645:15:1645:19 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1645:31:1647:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1645:31:1647:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:13:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:13:1646:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:13:1646:19 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:14:1646:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:14:1646:19 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:15:1646:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:15:1646:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1646:15:1646:19 | &self | TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1646:16:1646:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1646:16:1646:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:15:1649:25 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1649:15:1649:25 | SelfParam | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1649:37:1651:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1649:37:1651:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:13:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:13:1650:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:13:1650:19 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:14:1650:19 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:14:1650:19 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:15:1650:19 | &self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:15:1650:19 | &self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1650:15:1650:19 | &self | TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1650:16:1650:19 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1650:16:1650:19 | self | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:15:1653:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1653:15:1653:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1653:34:1655:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1653:34:1655:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1654:13:1654:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1654:13:1654:13 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:15:1657:15 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1657:15:1657:15 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1657:34:1659:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1657:34:1659:9 | { ... } | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:13:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:13:1658:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef.TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:13:1658:16 | &... | TRef.TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:14:1658:16 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | TRef.TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:14:1658:16 | &... | TRef.TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:15:1658:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:15:1658:16 | &x | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1658:15:1658:16 | &x | TRef.TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1658:16:1658:16 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1658:16:1658:16 | x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1662:16:1675:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1663:13:1663:13 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1663:17:1663:20 | S {...} | | main.rs:1642:5:1642:13 | S | +| main.rs:1664:9:1664:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1664:9:1664:14 | x.f1() | | {EXTERNAL LOCATION} | & | +| main.rs:1664:9:1664:14 | x.f1() | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1665:9:1665:9 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1665:9:1665:14 | x.f2() | | {EXTERNAL LOCATION} | & | +| main.rs:1665:9:1665:14 | x.f2() | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:9:1666:17 | ...::f3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1666:9:1666:17 | ...::f3(...) | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:15:1666:16 | &x | | {EXTERNAL LOCATION} | & | +| main.rs:1666:15:1666:16 | &x | TRef | main.rs:1642:5:1642:13 | S | +| main.rs:1666:16:1666:16 | x | | main.rs:1642:5:1642:13 | S | +| main.rs:1668:13:1668:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1668:17:1668:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1668:18:1668:24 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1668:18:1668:24 | * ... | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1668:19:1668:24 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1668:19:1668:24 | &... | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1668:19:1668:24 | &... | TRef.TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1668:20:1668:24 | &true | | {EXTERNAL LOCATION} | & | +| main.rs:1668:20:1668:24 | &true | TRef | {EXTERNAL LOCATION} | bool | +| main.rs:1668:21:1668:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1672:17:1672:20 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1672:24:1672:41 | ...::default(...) | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1673:9:1673:31 | ...::flip(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1673:22:1673:30 | &mut flag | | {EXTERNAL LOCATION} | &mut | +| main.rs:1673:22:1673:30 | &mut flag | TRefMut | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1673:27:1673:30 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1674:18:1674:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1674:18:1674:23 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1674:18:1674:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1674:18:1674:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1674:26:1674:29 | flag | | main.rs:1631:5:1634:5 | MyFlag | +| main.rs:1689:43:1692:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1689:43:1692:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1689:43:1692:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:13:1690:13 | x | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:17:1690:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1690:17:1690:30 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:17:1690:31 | TryExpr | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1690:28:1690:29 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1691:9:1691:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1691:9:1691:22 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1691:9:1691:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1691:20:1691:21 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1696:46:1700:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1696:46:1700:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1696:46:1700:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1697:13:1697:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1697:13:1697:13 | x | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1697:17:1697:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1697:17:1697:30 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1697:28:1697:29 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1698:13:1698:13 | y | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1698:17:1698:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1698:17:1698:17 | x | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1698:17:1698:18 | TryExpr | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1699:9:1699:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1699:9:1699:22 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1699:9:1699:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1699:20:1699:21 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1704:40:1709:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1704:40:1709:5 | { ... } | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1704:40:1709:5 | { ... } | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:13:1705:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1705:13:1705:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1705:13:1705:13 | x | T.T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:17:1705:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1705:17:1705:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1705:17:1705:42 | ...::Ok(...) | T.T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:28:1705:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1705:28:1705:41 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1705:39:1705:40 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1707:17:1707:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1707:17:1707:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1707:17:1707:17 | x | T.T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1707:17:1707:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1707:17:1707:18 | TryExpr | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1707:17:1707:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1707:24:1707:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1707:24:1707:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1708:9:1708:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1708:9:1708:22 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1708:9:1708:22 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1708:20:1708:21 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:30:1713:34 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:30:1713:34 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1713:69:1720:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1713:69:1720:5 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1713:69:1720:5 | { ... } | T | main.rs:1713:20:1713:27 | T | +| main.rs:1714:13:1714:17 | value | | main.rs:1713:20:1713:27 | T | +| main.rs:1714:21:1714:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1714:21:1714:25 | input | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1714:21:1714:25 | input | T | main.rs:1713:20:1713:27 | T | +| main.rs:1714:21:1714:26 | TryExpr | | main.rs:1713:20:1713:27 | T | +| main.rs:1715:22:1715:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1715:22:1715:38 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1715:22:1715:38 | ...::Ok(...) | T | main.rs:1713:20:1713:27 | T | +| main.rs:1715:22:1718:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1715:22:1718:10 | ... .and_then(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1715:33:1715:37 | value | | main.rs:1713:20:1713:27 | T | +| main.rs:1715:49:1718:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | +| main.rs:1715:49:1718:9 | \|...\| ... | dyn(Output).E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1715:53:1718:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1715:53:1718:9 | { ... } | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1716:22:1716:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1716:22:1716:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1716:22:1716:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1716:22:1716:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1717:13:1717:34 | ...::Ok::<...>(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1719:9:1719:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1719:9:1719:23 | ...::Err(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1719:9:1719:23 | ...::Err(...) | T | main.rs:1713:20:1713:27 | T | +| main.rs:1719:21:1719:22 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1723:16:1739:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1724:9:1726:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1724:16:1724:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1724:16:1724:33 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:16:1724:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:27:1724:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:37:1724:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1724:37:1724:52 | try_same_error(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:37:1724:52 | try_same_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1724:54:1726:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1725:22:1725:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1725:22:1725:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1725:22:1725:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1725:30:1725:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:9:1730:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1728:16:1728:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1728:16:1728:33 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1728:16:1728:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:27:1728:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:37:1728:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1728:37:1728:55 | try_convert_error(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1728:37:1728:55 | try_convert_error(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1728:57:1730:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1729:22:1729:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1729:22:1729:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1729:22:1729:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1729:30:1729:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:9:1734:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1732:16:1732:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1732:16:1732:33 | ...::Ok(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1732:16:1732:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:27:1732:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:37:1732:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1732:37:1732:49 | try_chained(...) | E | main.rs:1684:5:1685:14 | S2 | +| main.rs:1732:37:1732:49 | try_chained(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1732:51:1734:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1733:22:1733:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1733:22:1733:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1733:22:1733:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1733:30:1733:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:9:1738:9 | if ... {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1736:16:1736:33 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:16:1736:33 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:16:1736:33 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:27:1736:32 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:37:1736:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:37:1736:63 | try_complex(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:37:1736:63 | try_complex(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:49:1736:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1736:49:1736:62 | ...::Ok(...) | E | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:49:1736:62 | ...::Ok(...) | T | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:60:1736:61 | S1 | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1736:65:1738:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:1737:22:1737:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1737:22:1737:35 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:1737:22:1737:35 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1737:30:1737:35 | result | | main.rs:1681:5:1682:14 | S1 | +| main.rs:1743:16:1834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1744:13:1744:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1744:22:1744:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1745:13:1745:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1745:17:1745:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:13:1746:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:17:1746:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:17:1746:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1746:21:1746:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:13:1747:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:17:1747:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1747:17:1747:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1748:13:1748:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1748:17:1748:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1749:13:1749:17 | hello | | {EXTERNAL LOCATION} | & | +| main.rs:1749:13:1749:17 | hello | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1749:21:1749:27 | "Hello" | | {EXTERNAL LOCATION} | & | +| main.rs:1749:21:1749:27 | "Hello" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:1750:13:1750:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1750:17:1750:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1751:13:1751:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1751:17:1751:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:13:1752:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1752:17:1752:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1755:26:1755:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1755:26:1755:30 | SelfParam | TRef | main.rs:1754:9:1758:9 | Self [trait MyTrait] | | main.rs:1761:26:1761:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1761:26:1761:30 | SelfParam | TRef.TSlice | main.rs:1760:14:1760:23 | T | +| main.rs:1761:26:1761:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1761:26:1761:30 | SelfParam | TRef.TArray | main.rs:1760:14:1760:23 | T | | main.rs:1761:39:1763:13 | { ... } | | {EXTERNAL LOCATION} | & | | main.rs:1761:39:1763:13 | { ... } | TRef | main.rs:1760:14:1760:23 | T | | main.rs:1762:17:1762:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1762:17:1762:20 | self | TRef.TSlice | main.rs:1760:14:1760:23 | T | -| main.rs:1762:17:1762:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1762:17:1762:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1762:17:1762:20 | self | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1762:17:1762:20 | self | TRef.TArray | main.rs:1760:14:1760:23 | T | | main.rs:1762:17:1762:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | | main.rs:1762:17:1762:36 | ... .unwrap() | TRef | main.rs:1760:14:1760:23 | T | | main.rs:1762:26:1762:26 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1765:31:1767:13 | { ... } | | main.rs:1760:14:1760:23 | T | | main.rs:1766:17:1766:28 | ...::default(...) | | main.rs:1760:14:1760:23 | T | -| main.rs:1770:13:1770:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1770:13:1770:13 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:13:1770:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:25:1770:34 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1770:25:1770:34 | &... | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1770:25:1770:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:1770:25:1770:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:25:1770:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:26:1770:34 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:1770:26:1770:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:27:1770:27 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:30:1770:30 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1770:33:1770:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:13:1770:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1770:13:1770:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:17:1770:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1770:17:1770:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:17:1770:37 | ... .my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1770:17:1770:37 | ... .my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:18:1770:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:21:1770:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1770:24:1770:24 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1771:13:1771:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1771:13:1771:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:17:1771:17 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:17 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1771:17:1771:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1771:17:1771:29 | s.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1771:17:1771:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1772:13:1772:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:17:1772:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1772:17:1772:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1772:34:1772:34 | s | | {EXTERNAL LOCATION} | & | -| main.rs:1772:34:1772:34 | s | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:1772:34:1772:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:13:1773:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1773:17:1773:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:26:1776:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1776:26:1776:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1776:26:1776:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1776:39:1778:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1776:39:1778:13 | { ... } | TRef | main.rs:1775:14:1775:23 | T | -| main.rs:1777:17:1777:23 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1777:17:1777:23 | &... | TRef | main.rs:1775:14:1775:23 | T | -| main.rs:1777:18:1777:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1777:18:1777:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1777:18:1777:21 | self | TRef.T0 | main.rs:1775:14:1775:23 | T | -| main.rs:1777:18:1777:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1777:18:1777:23 | self.0 | | main.rs:1775:14:1775:23 | T | -| main.rs:1780:31:1782:13 | { ... } | | main.rs:1775:14:1775:23 | T | -| main.rs:1781:17:1781:28 | ...::default(...) | | main.rs:1775:14:1775:23 | T | -| main.rs:1785:13:1785:13 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:13:1785:13 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:13:1785:13 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1785:17:1785:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:17:1785:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:18:1785:19 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1785:22:1785:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:17:1771:47 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1771:17:1771:47 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:22:1771:22 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:37:1771:46 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1771:37:1771:46 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1771:37:1771:46 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:38:1771:46 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1771:38:1771:46 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:39:1771:39 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:42:1771:42 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1771:45:1771:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:13:1772:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:17:1772:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1772:24:1772:24 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1775:26:1775:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1775:26:1775:30 | SelfParam | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1775:26:1775:30 | SelfParam | TRef.TSlice | main.rs:1774:14:1774:23 | T | +| main.rs:1775:39:1777:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1775:39:1777:13 | { ... } | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:20 | self | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1776:17:1776:20 | self | TRef.TSlice | main.rs:1774:14:1774:23 | T | +| main.rs:1776:17:1776:27 | self.get(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1776:17:1776:27 | self.get(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:36 | ... .unwrap() | | {EXTERNAL LOCATION} | & | +| main.rs:1776:17:1776:36 | ... .unwrap() | TRef | main.rs:1774:14:1774:23 | T | +| main.rs:1776:26:1776:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1779:31:1781:13 | { ... } | | main.rs:1774:14:1774:23 | T | +| main.rs:1780:17:1780:28 | ...::default(...) | | main.rs:1774:14:1774:23 | T | +| main.rs:1784:13:1784:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1784:13:1784:13 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1784:13:1784:13 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:25:1784:34 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1784:25:1784:34 | &... | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1784:25:1784:34 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:1784:25:1784:34 | &... | TRef.TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:25:1784:34 | &... | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:26:1784:34 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:1784:26:1784:34 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:27:1784:27 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:30:1784:30 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1784:33:1784:33 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:13:1785:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1785:13:1785:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:17 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:17 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1785:17:1785:17 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1785:17:1785:29 | s.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1785:17:1785:29 | s.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1786:13:1786:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1786:13:1786:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:17 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1786:17:1786:17 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:17 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1786:17:1786:29 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1786:17:1786:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1787:13:1787:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:17:1787:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1787:17:1787:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:37:1787:38 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1787:37:1787:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1787:37:1787:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:37:1787:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:38:1787:38 | p | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:1787:38:1787:38 | p | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:1787:38:1787:38 | p | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:1788:13:1788:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1788:17:1788:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1791:26:1791:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1791:26:1791:30 | SelfParam | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1791:39:1793:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1791:39:1793:13 | { ... } | TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1792:17:1792:21 | * ... | | {EXTERNAL LOCATION} | & | -| main.rs:1792:17:1792:21 | * ... | TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1792:18:1792:21 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1792:18:1792:21 | self | TRef.TRef | main.rs:1790:14:1790:23 | T | -| main.rs:1795:31:1797:13 | { ... } | | main.rs:1790:14:1790:23 | T | -| main.rs:1796:17:1796:28 | ...::default(...) | | main.rs:1790:14:1790:23 | T | -| main.rs:1800:13:1800:13 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1800:13:1800:13 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:17:1800:19 | &42 | | {EXTERNAL LOCATION} | & | -| main.rs:1800:17:1800:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1800:18:1800:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:17:1786:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1786:17:1786:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1786:34:1786:34 | s | | {EXTERNAL LOCATION} | & | +| main.rs:1786:34:1786:34 | s | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:1786:34:1786:34 | s | TRef.TSlice | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:13:1787:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1787:17:1787:34 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1790:26:1790:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1790:26:1790:30 | SelfParam | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1790:26:1790:30 | SelfParam | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1790:39:1792:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1790:39:1792:13 | { ... } | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:17:1791:23 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1791:17:1791:23 | &... | TRef | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1791:18:1791:21 | self | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1791:18:1791:21 | self | TRef.T0 | main.rs:1789:14:1789:23 | T | +| main.rs:1791:18:1791:21 | self | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1791:18:1791:23 | self.0 | | main.rs:1789:14:1789:23 | T | +| main.rs:1794:31:1796:13 | { ... } | | main.rs:1789:14:1789:23 | T | +| main.rs:1795:17:1795:28 | ...::default(...) | | main.rs:1789:14:1789:23 | T | +| main.rs:1799:13:1799:13 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1799:13:1799:13 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:13:1799:13 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:17:1799:23 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1799:17:1799:23 | TupleExpr | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:17:1799:23 | TupleExpr | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:18:1799:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1799:22:1799:22 | 7 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:13:1800:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1800:13:1800:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:17 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1800:17:1800:17 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:17 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1800:17:1800:29 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1800:17:1800:29 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | | main.rs:1801:13:1801:13 | x | | {EXTERNAL LOCATION} | & | | main.rs:1801:13:1801:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:17:1801:17 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:17 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1801:17:1801:29 | r.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1801:17:1801:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1802:13:1802:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:17:1802:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1802:17:1802:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:33:1802:34 | &r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:33:1802:34 | &r | TRef | {EXTERNAL LOCATION} | & | -| main.rs:1802:33:1802:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1802:34:1802:34 | r | | {EXTERNAL LOCATION} | & | -| main.rs:1802:34:1802:34 | r | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1803:13:1803:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1803:17:1803:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1806:26:1806:30 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1806:26:1806:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1806:26:1806:30 | SelfParam | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1806:39:1808:13 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1806:39:1808:13 | { ... } | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:17:1807:34 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1807:17:1807:34 | { ... } | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:26:1807:32 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:1807:26:1807:32 | &... | TRef | main.rs:1805:14:1805:23 | T | -| main.rs:1807:27:1807:32 | * ... | | main.rs:1805:14:1805:23 | T | -| main.rs:1807:28:1807:32 | * ... | | {EXTERNAL LOCATION} | *mut | -| main.rs:1807:28:1807:32 | * ... | TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1807:29:1807:32 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1807:29:1807:32 | self | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1807:29:1807:32 | self | TRef.TPtrMut | main.rs:1805:14:1805:23 | T | -| main.rs:1810:31:1812:13 | { ... } | | main.rs:1805:14:1805:23 | T | -| main.rs:1811:17:1811:28 | ...::default(...) | | main.rs:1805:14:1805:23 | T | -| main.rs:1815:17:1815:17 | v | | {EXTERNAL LOCATION} | i32 | -| main.rs:1815:21:1815:22 | 42 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:13:1816:13 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1816:13:1816:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:27:1816:32 | &mut v | | {EXTERNAL LOCATION} | & | -| main.rs:1816:27:1816:32 | &mut v | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1816:32:1816:32 | v | | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1817:13:1817:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:17:1817:40 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1817:17:1817:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:26:1817:26 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1817:26:1817:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1817:26:1817:38 | p.my_method() | | {EXTERNAL LOCATION} | & | -| main.rs:1817:26:1817:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:13:1818:13 | x | | {EXTERNAL LOCATION} | & | -| main.rs:1818:13:1818:13 | x | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:17:1818:50 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:1818:17:1818:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:26:1818:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | -| main.rs:1818:26:1818:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:46:1818:47 | &p | | {EXTERNAL LOCATION} | & | -| main.rs:1818:46:1818:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | -| main.rs:1818:46:1818:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1818:47:1818:47 | p | | {EXTERNAL LOCATION} | *mut | -| main.rs:1818:47:1818:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:13:1819:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1819:17:1819:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:1825:16:1837:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1826:13:1826:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:17:1826:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1826:25:1826:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:13:1827:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:17:1827:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1827:25:1827:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1829:17:1829:17 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:13:1830:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1830:20:1830:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1830:20:1830:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1830:26:1830:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1831:9:1835:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | -| main.rs:1831:12:1831:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1831:17:1833:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1832:17:1832:17 | z | | {EXTERNAL LOCATION} | () | -| main.rs:1832:21:1832:27 | (...) | | {EXTERNAL LOCATION} | () | -| main.rs:1832:22:1832:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1832:22:1832:26 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1832:26:1832:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:16:1835:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1834:13:1834:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1834:13:1834:17 | ... = ... | | {EXTERNAL LOCATION} | () | -| main.rs:1834:17:1834:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1836:9:1836:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1850:30:1852:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1851:13:1851:31 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1851:23:1851:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1851:29:1851:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1858:16:1858:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:22:1858:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1858:41:1863:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1859:13:1862:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:20:1860:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:20:1860:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:20:1860:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:29:1860:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1860:29:1860:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:20:1861:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:20:1861:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:20:1861:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:29:1861:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1861:29:1861:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:23:1868:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1868:23:1868:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:34:1868:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1868:45:1871:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1869:13:1869:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1869:13:1869:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1869:13:1869:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:13:1869:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1869:23:1869:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1869:23:1869:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:13:1870:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1870:13:1870:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:13:1870:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:13:1870:27 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:1870:23:1870:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1870:23:1870:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1876:16:1876:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:22:1876:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1876:41:1881:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1877:13:1880:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:20:1878:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:20:1878:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:20:1878:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:29:1878:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1878:29:1878:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:20:1879:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:20:1879:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:20:1879:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:29:1879:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1879:29:1879:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1886:23:1886:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1886:23:1886:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:34:1886:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1886:45:1889:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1887:13:1887:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1887:13:1887:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1887:13:1887:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1887:13:1887:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1887:23:1887:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1887:23:1887:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1888:13:1888:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1888:13:1888:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:13:1888:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1888:13:1888:27 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1888:23:1888:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1888:23:1888:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:16:1894:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:22:1894:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1894:41:1899:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1895:13:1898:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:20:1896:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:20:1896:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:20:1896:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:29:1896:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1896:29:1896:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:20:1897:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:20:1897:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:20:1897:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1897:29:1897:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1897:29:1897:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:23:1903:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1903:23:1903:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:34:1903:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1903:45:1906:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1904:13:1904:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1904:13:1904:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1904:13:1904:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:13:1904:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1904:23:1904:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1904:23:1904:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:13:1905:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1905:13:1905:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:13:1905:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:13:1905:27 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1905:23:1905:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1905:23:1905:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:16:1911:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:22:1911:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1911:41:1916:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1912:13:1915:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:20:1913:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:20:1913:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:20:1913:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:29:1913:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1913:29:1913:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:20:1914:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:20:1914:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:20:1914:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:29:1914:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1914:29:1914:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1920:23:1920:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1920:23:1920:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:34:1920:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1920:45:1923:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1921:13:1921:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1921:13:1921:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1921:13:1921:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1921:13:1921:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1921:23:1921:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1921:23:1921:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1922:13:1922:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1922:13:1922:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:13:1922:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1922:13:1922:27 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1922:23:1922:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1922:23:1922:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1928:16:1928:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:22:1928:24 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1928:41:1933:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1929:13:1932:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:20:1930:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:20:1930:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:20:1930:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:29:1930:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1930:29:1930:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:20:1931:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:20:1931:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:20:1931:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1931:29:1931:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1931:29:1931:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1937:23:1937:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1937:23:1937:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:34:1937:36 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1937:45:1940:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1938:13:1938:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1938:13:1938:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1938:13:1938:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1938:13:1938:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1938:23:1938:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1938:23:1938:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1939:13:1939:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1939:13:1939:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:13:1939:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1939:13:1939:27 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1939:23:1939:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1939:23:1939:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1945:19:1945:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:25:1945:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1945:44:1950:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1946:13:1949:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:20:1947:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:20:1947:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:20:1947:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1947:29:1947:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1947:29:1947:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:20:1948:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:20:1948:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:20:1948:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1948:29:1948:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1948:29:1948:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1954:26:1954:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1954:26:1954:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:37:1954:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1954:48:1957:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1955:13:1955:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1955:13:1955:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1955:13:1955:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1955:13:1955:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1955:23:1955:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1955:23:1955:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1956:13:1956:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1956:13:1956:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:13:1956:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1956:13:1956:27 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1956:23:1956:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1956:23:1956:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1962:18:1962:21 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:24:1962:26 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1962:43:1967:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1963:13:1966:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:20:1964:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:20:1964:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:20:1964:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1964:29:1964:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1964:29:1964:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:20:1965:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:20:1965:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:20:1965:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1965:29:1965:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1965:29:1965:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1971:25:1971:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1971:25:1971:33 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:36:1971:38 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1971:47:1974:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1972:13:1972:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1972:13:1972:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1972:13:1972:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1972:13:1972:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1972:23:1972:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1972:23:1972:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:13:1973:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1973:13:1973:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:13:1973:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1973:13:1973:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1973:23:1973:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1973:23:1973:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1979:19:1979:22 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:25:1979:27 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1979:44:1984:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1980:13:1983:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:20:1981:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:20:1981:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:20:1981:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:29:1981:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1981:29:1981:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:20:1982:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:20:1982:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:20:1982:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:29:1982:31 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1982:29:1982:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1988:26:1988:34 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:1988:26:1988:34 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:37:1988:39 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1988:48:1991:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:1989:13:1989:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1989:13:1989:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1989:13:1989:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1989:13:1989:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1989:23:1989:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1989:23:1989:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1990:13:1990:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:1990:13:1990:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:13:1990:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1990:13:1990:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:1990:23:1990:25 | rhs | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1990:23:1990:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1996:16:1996:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1996:22:1996:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1996:40:2001:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1997:13:2000:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:20:1998:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1998:20:1998:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1998:20:1998:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1998:30:1998:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1999:20:1999:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:1999:20:1999:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:20:1999:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1999:30:1999:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:23:2005:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2005:23:2005:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2005:34:2005:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2005:44:2008:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2006:13:2006:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2006:13:2006:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2006:13:2006:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2006:13:2006:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2006:24:2006:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2007:13:2007:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2007:13:2007:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2007:13:2007:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2007:13:2007:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2007:24:2007:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:16:2013:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2013:22:2013:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2013:40:2018:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2014:13:2017:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:20:2015:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2015:20:2015:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2015:20:2015:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2015:30:2015:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2016:20:2016:23 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2016:20:2016:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2016:20:2016:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2016:30:2016:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:23:2022:31 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2022:23:2022:31 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2022:34:2022:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2022:44:2025:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2023:13:2023:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2023:13:2023:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2023:13:2023:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2023:13:2023:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2023:24:2023:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2024:13:2024:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2024:13:2024:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2024:13:2024:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2024:13:2024:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2024:24:2024:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:2030:16:2030:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2030:30:2035:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2031:13:2034:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2032:20:2032:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2032:21:2032:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2032:21:2032:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2033:20:2033:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2033:21:2033:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2033:21:2033:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2040:16:2040:19 | SelfParam | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2040:30:2045:9 | { ... } | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2041:13:2044:13 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2042:20:2042:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2042:21:2042:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2042:21:2042:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2043:20:2043:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2043:21:2043:24 | self | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2043:21:2043:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2049:15:2049:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2049:15:2049:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:22:2049:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2049:22:2049:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2049:44:2051:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:13:2050:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:13:2050:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2050:13:2050:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:13:2050:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:23:2050:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:23:2050:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:23:2050:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2050:34:2050:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2050:34:2050:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:34:2050:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2050:34:2050:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2050:44:2050:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2050:44:2050:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2050:44:2050:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2053:15:2053:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2053:15:2053:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:22:2053:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2053:22:2053:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2053:44:2055:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:13:2054:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:13:2054:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:13:2054:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:13:2054:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:23:2054:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:23:2054:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:23:2054:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:34:2054:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2054:34:2054:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:34:2054:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2054:34:2054:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2054:44:2054:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2054:44:2054:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2054:44:2054:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2059:24:2059:28 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2059:24:2059:28 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:31:2059:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2059:31:2059:35 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2059:75:2061:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2059:75:2061:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2060:13:2060:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:13:2060:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2060:13:2060:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:2060:14:2060:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:14:2060:17 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:14:2060:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:14:2060:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:23:2060:26 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2060:23:2060:26 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:23:2060:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:43:2060:62 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2060:43:2060:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:44:2060:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:45:2060:49 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:45:2060:49 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:45:2060:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:45:2060:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2060:55:2060:59 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2060:55:2060:59 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2060:55:2060:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1801:17:1801:39 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1801:17:1801:39 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:37:1801:38 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1801:37:1801:38 | &p | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1801:37:1801:38 | &p | TRef.T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:37:1801:38 | &p | TRef.T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:38:1801:38 | p | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:1801:38:1801:38 | p | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:1801:38:1801:38 | p | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:13:1802:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1802:17:1802:39 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1805:26:1805:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1805:26:1805:30 | SelfParam | TRef.TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1805:39:1807:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1805:39:1807:13 | { ... } | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:17:1806:21 | * ... | | {EXTERNAL LOCATION} | & | +| main.rs:1806:17:1806:21 | * ... | TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1806:18:1806:21 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1806:18:1806:21 | self | TRef.TRef | main.rs:1804:14:1804:23 | T | +| main.rs:1809:31:1811:13 | { ... } | | main.rs:1804:14:1804:23 | T | +| main.rs:1810:17:1810:28 | ...::default(...) | | main.rs:1804:14:1804:23 | T | +| main.rs:1814:13:1814:13 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1814:13:1814:13 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1814:17:1814:19 | &42 | | {EXTERNAL LOCATION} | & | +| main.rs:1814:17:1814:19 | &42 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1814:18:1814:19 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:13:1815:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1815:13:1815:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:17:1815:17 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1815:17:1815:17 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1815:17:1815:29 | r.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1815:17:1815:29 | r.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:13:1816:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1816:13:1816:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:17:1816:35 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1816:17:1816:35 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:33:1816:34 | &r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:33:1816:34 | &r | TRef | {EXTERNAL LOCATION} | & | +| main.rs:1816:33:1816:34 | &r | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1816:34:1816:34 | r | | {EXTERNAL LOCATION} | & | +| main.rs:1816:34:1816:34 | r | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:13:1817:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:17:1817:33 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1820:26:1820:30 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:1820:26:1820:30 | SelfParam | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1820:26:1820:30 | SelfParam | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1820:39:1822:13 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1820:39:1822:13 | { ... } | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:17:1821:34 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1821:17:1821:34 | { ... } | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:26:1821:32 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:1821:26:1821:32 | &... | TRef | main.rs:1819:14:1819:23 | T | +| main.rs:1821:27:1821:32 | * ... | | main.rs:1819:14:1819:23 | T | +| main.rs:1821:28:1821:32 | * ... | | {EXTERNAL LOCATION} | *mut | +| main.rs:1821:28:1821:32 | * ... | TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1821:29:1821:32 | self | | {EXTERNAL LOCATION} | & | +| main.rs:1821:29:1821:32 | self | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1821:29:1821:32 | self | TRef.TPtrMut | main.rs:1819:14:1819:23 | T | +| main.rs:1824:31:1826:13 | { ... } | | main.rs:1819:14:1819:23 | T | +| main.rs:1825:17:1825:28 | ...::default(...) | | main.rs:1819:14:1819:23 | T | +| main.rs:1829:17:1829:17 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:21:1829:22 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:13:1830:13 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1830:13:1830:13 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:27:1830:32 | &mut v | | {EXTERNAL LOCATION} | &mut | +| main.rs:1830:27:1830:32 | &mut v | TRefMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:32:1830:32 | v | | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:13:1831:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1831:13:1831:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:17:1831:40 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1831:17:1831:40 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:26:1831:26 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1831:26:1831:26 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1831:26:1831:38 | p.my_method() | | {EXTERNAL LOCATION} | & | +| main.rs:1831:26:1831:38 | p.my_method() | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:13:1832:13 | x | | {EXTERNAL LOCATION} | & | +| main.rs:1832:13:1832:13 | x | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:17:1832:50 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:1832:17:1832:50 | { ... } | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:26:1832:48 | ...::my_method(...) | | {EXTERNAL LOCATION} | & | +| main.rs:1832:26:1832:48 | ...::my_method(...) | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:46:1832:47 | &p | | {EXTERNAL LOCATION} | & | +| main.rs:1832:46:1832:47 | &p | TRef | {EXTERNAL LOCATION} | *mut | +| main.rs:1832:46:1832:47 | &p | TRef.TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:47:1832:47 | p | | {EXTERNAL LOCATION} | *mut | +| main.rs:1832:47:1832:47 | p | TPtrMut | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:17:1833:37 | ...::my_func(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:16:1851:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1840:13:1840:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:17:1840:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1840:25:1840:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:13:1841:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:17:1841:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1841:25:1841:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1843:17:1843:17 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1844:13:1844:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1844:20:1844:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1844:20:1844:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1844:26:1844:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1845:9:1849:9 | if cond {...} else {...} | | {EXTERNAL LOCATION} | () | +| main.rs:1845:12:1845:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1845:17:1847:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1846:17:1846:17 | z | | {EXTERNAL LOCATION} | () | +| main.rs:1846:21:1846:27 | (...) | | {EXTERNAL LOCATION} | () | +| main.rs:1846:22:1846:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1846:22:1846:26 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1846:26:1846:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1847:16:1849:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1848:13:1848:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1848:13:1848:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:1848:17:1848:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1850:9:1850:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1864:30:1866:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1865:13:1865:31 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1865:23:1865:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1865:29:1865:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1872:16:1872:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:22:1872:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1872:41:1877:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1873:13:1876:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:20:1874:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:20:1874:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:20:1874:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:29:1874:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1874:29:1874:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:20:1875:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:20:1875:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:20:1875:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:29:1875:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1875:29:1875:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1882:23:1882:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1882:23:1882:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:34:1882:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1882:45:1885:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1883:13:1883:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1883:13:1883:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:13:1883:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1883:13:1883:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1883:23:1883:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1883:23:1883:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:13:1884:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1884:13:1884:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:13:1884:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1884:13:1884:27 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:1884:23:1884:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1884:23:1884:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1890:16:1890:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:22:1890:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1890:41:1895:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1891:13:1894:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:20:1892:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:20:1892:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:20:1892:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:29:1892:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1892:29:1892:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:20:1893:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:20:1893:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:20:1893:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:29:1893:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1893:29:1893:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:23:1900:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1900:23:1900:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:34:1900:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1900:45:1903:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1901:13:1901:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1901:13:1901:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:13:1901:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:13:1901:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1901:23:1901:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1901:23:1901:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:13:1902:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1902:13:1902:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:13:1902:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:13:1902:27 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1902:23:1902:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1902:23:1902:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:16:1908:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:22:1908:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1908:41:1913:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1909:13:1912:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:20:1910:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:20:1910:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:20:1910:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:29:1910:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1910:29:1910:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:20:1911:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:20:1911:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:20:1911:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:29:1911:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1911:29:1911:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:23:1917:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1917:23:1917:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:34:1917:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1917:45:1920:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1918:13:1918:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1918:13:1918:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:13:1918:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:13:1918:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1918:23:1918:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1918:23:1918:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:13:1919:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1919:13:1919:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:13:1919:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:13:1919:27 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1919:23:1919:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1919:23:1919:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:16:1925:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:22:1925:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1925:41:1930:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1926:13:1929:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:20:1927:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:20:1927:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:20:1927:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1927:29:1927:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1927:29:1927:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:20:1928:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:20:1928:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:20:1928:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1928:29:1928:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1928:29:1928:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1934:23:1934:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1934:23:1934:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:34:1934:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1934:45:1937:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1935:13:1935:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1935:13:1935:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:13:1935:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1935:13:1935:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1935:23:1935:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1935:23:1935:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1936:13:1936:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1936:13:1936:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:13:1936:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1936:13:1936:27 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1936:23:1936:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1936:23:1936:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1942:16:1942:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:22:1942:24 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1942:41:1947:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1943:13:1946:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:20:1944:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:20:1944:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:20:1944:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1944:29:1944:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1944:29:1944:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:20:1945:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:20:1945:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:20:1945:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1945:29:1945:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1945:29:1945:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1951:23:1951:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1951:23:1951:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:34:1951:36 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1951:45:1954:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1952:13:1952:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1952:13:1952:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:13:1952:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1952:13:1952:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1952:23:1952:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1952:23:1952:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:13:1953:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1953:13:1953:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:13:1953:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1953:13:1953:27 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1953:23:1953:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1953:23:1953:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1959:19:1959:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:25:1959:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1959:44:1964:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1960:13:1963:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:20:1961:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:20:1961:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:20:1961:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1961:29:1961:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1961:29:1961:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:20:1962:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:20:1962:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:20:1962:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1962:29:1962:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1962:29:1962:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1968:26:1968:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1968:26:1968:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:37:1968:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1968:48:1971:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1969:13:1969:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1969:13:1969:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:13:1969:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:13:1969:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1969:23:1969:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1969:23:1969:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:13:1970:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1970:13:1970:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:13:1970:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:13:1970:27 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1970:23:1970:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1970:23:1970:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1976:18:1976:21 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:24:1976:26 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1976:43:1981:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1977:13:1980:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:20:1978:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:20:1978:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1978:20:1978:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1978:29:1978:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1978:29:1978:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:20:1979:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:20:1979:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:20:1979:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1979:29:1979:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1979:29:1979:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1985:25:1985:33 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:1985:25:1985:33 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:36:1985:38 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1985:47:1988:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1986:13:1986:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1986:13:1986:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:13:1986:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1986:13:1986:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1986:23:1986:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1986:23:1986:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:13:1987:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:1987:13:1987:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:13:1987:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1987:13:1987:27 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:1987:23:1987:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1987:23:1987:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1993:19:1993:22 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:25:1993:27 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1993:44:1998:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1994:13:1997:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:20:1995:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:20:1995:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:20:1995:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1995:29:1995:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1995:29:1995:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:20:1996:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:20:1996:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:20:1996:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1996:29:1996:31 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:1996:29:1996:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2002:26:2002:34 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2002:26:2002:34 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:37:2002:39 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2002:48:2005:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2003:13:2003:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2003:13:2003:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:13:2003:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2003:13:2003:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2003:23:2003:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2003:23:2003:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2004:13:2004:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2004:13:2004:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:13:2004:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2004:13:2004:27 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2004:23:2004:25 | rhs | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2004:23:2004:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2010:16:2010:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2010:22:2010:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2010:40:2015:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2011:13:2014:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:20:2012:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2012:20:2012:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:20:2012:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2012:30:2012:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2013:20:2013:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2013:20:2013:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:20:2013:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2013:30:2013:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:23:2019:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2019:23:2019:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2019:34:2019:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2019:44:2022:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2020:13:2020:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2020:13:2020:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2020:13:2020:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2020:13:2020:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2020:24:2020:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2021:13:2021:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2021:13:2021:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2021:13:2021:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2021:13:2021:26 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2021:24:2021:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:16:2027:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2027:22:2027:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2027:40:2032:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2028:13:2031:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:20:2029:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2029:20:2029:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2029:20:2029:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2029:30:2029:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2030:20:2030:23 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2030:20:2030:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2030:20:2030:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2030:30:2030:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:23:2036:31 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2036:23:2036:31 | SelfParam | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2036:34:2036:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2036:44:2039:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2037:13:2037:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2037:13:2037:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2037:13:2037:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2037:13:2037:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2037:24:2037:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2038:13:2038:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2038:13:2038:16 | self | TRefMut | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2038:13:2038:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2038:13:2038:26 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2038:24:2038:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:2044:16:2044:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2044:30:2049:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2045:13:2048:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2046:20:2046:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2046:21:2046:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2046:21:2046:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2047:20:2047:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2047:21:2047:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2047:21:2047:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2054:16:2054:19 | SelfParam | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2054:30:2059:9 | { ... } | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2055:13:2058:13 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2056:20:2056:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2056:21:2056:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2056:21:2056:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2057:20:2057:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2057:21:2057:24 | self | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2057:21:2057:26 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2063:15:2063:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2063:15:2063:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:22:2063:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2063:22:2063:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2063:22:2063:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2063:44:2065:9 | { ... } | | {EXTERNAL LOCATION} | bool | | main.rs:2064:13:2064:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:13:2064:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2064:13:2064:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2064:13:2064:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:13:2064:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:13:2064:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:22:2064:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:22:2064:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:22:2064:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:33:2064:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2064:33:2064:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:33:2064:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2064:33:2064:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2064:42:2064:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2064:42:2064:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2064:42:2064:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2064:13:2064:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:13:2064:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:23:2064:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:23:2064:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:23:2064:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2064:34:2064:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2064:34:2064:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:34:2064:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2064:34:2064:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2064:44:2064:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2064:44:2064:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2064:44:2064:50 | other.y | | {EXTERNAL LOCATION} | i64 | | main.rs:2067:15:2067:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2067:15:2067:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2067:22:2067:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2067:22:2067:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2067:22:2067:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2067:44:2069:9 | { ... } | | {EXTERNAL LOCATION} | bool | | main.rs:2068:13:2068:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:13:2068:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2068:13:2068:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2068:13:2068:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:13:2068:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2068:13:2068:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:13:2068:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | | main.rs:2068:23:2068:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:23:2068:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2068:23:2068:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2068:23:2068:29 | other.x | | {EXTERNAL LOCATION} | i64 | | main.rs:2068:34:2068:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2068:34:2068:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2068:34:2068:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2068:34:2068:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2068:34:2068:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2068:34:2068:50 | ... != ... | | {EXTERNAL LOCATION} | bool | | main.rs:2068:44:2068:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2068:44:2068:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | +| main.rs:2068:44:2068:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | | main.rs:2068:44:2068:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2071:15:2071:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2071:15:2071:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:22:2071:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2071:22:2071:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2071:44:2073:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:13:2072:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:13:2072:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2072:13:2072:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:13:2072:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:22:2072:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:22:2072:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:22:2072:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2072:33:2072:36 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2072:33:2072:36 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:33:2072:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2072:33:2072:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2072:42:2072:46 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2072:42:2072:46 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2072:42:2072:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2075:15:2075:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2075:15:2075:19 | SelfParam | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:22:2075:26 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2075:22:2075:26 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2075:44:2077:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:13:2076:16 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:13:2076:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2076:13:2076:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:13:2076:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:23:2076:27 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:23:2076:27 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:23:2076:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2076:34:2076:37 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2076:34:2076:37 | self | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:34:2076:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2076:34:2076:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2076:44:2076:48 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2076:44:2076:48 | other | TRef | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2076:44:2076:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2080:26:2080:26 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2080:32:2080:32 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:9:2081:9 | a | | main.rs:2080:18:2080:23 | T | -| main.rs:2081:13:2081:13 | b | | main.rs:2080:18:2080:23 | T | -| main.rs:2084:16:2215:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2088:13:2088:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:22:2088:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:23:2088:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2088:23:2088:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2088:31:2088:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:13:2089:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:22:2089:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:23:2089:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2089:23:2089:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2089:31:2089:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:13:2090:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:22:2090:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:23:2090:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2090:23:2090:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2090:30:2090:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:13:2091:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:22:2091:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:23:2091:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2091:23:2091:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2091:31:2091:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:13:2092:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:22:2092:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:23:2092:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2092:23:2092:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2092:30:2092:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:13:2093:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2093:22:2093:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2093:23:2093:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2093:23:2093:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2093:32:2093:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:13:2096:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:23:2096:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2096:31:2096:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:13:2097:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:23:2097:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2097:31:2097:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:13:2098:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:23:2098:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2098:31:2098:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:13:2099:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:23:2099:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2099:31:2099:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:13:2100:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:23:2100:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:23:2100:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2100:31:2100:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:39:2101:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2101:45:2101:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:17:2104:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2104:34:2104:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:9:2105:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2105:9:2105:31 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2105:27:2105:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:17:2107:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2107:34:2107:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:9:2108:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2108:9:2108:31 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2108:27:2108:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:17:2110:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2110:34:2110:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:9:2111:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2111:9:2111:31 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2111:27:2111:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:17:2113:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2113:34:2113:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:9:2114:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2114:9:2114:31 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2114:27:2114:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:17:2116:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2116:34:2116:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:9:2117:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2117:9:2117:31 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2117:27:2117:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:13:2120:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:26:2120:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:26:2120:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2120:34:2120:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:13:2121:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:25:2121:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:25:2121:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2121:33:2121:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:13:2122:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:26:2122:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:26:2122:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2122:34:2122:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:13:2123:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:23:2123:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2123:32:2123:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:13:2124:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:23:2124:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:23:2124:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2124:32:2124:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:17:2127:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2127:37:2127:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2128:9:2128:34 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2128:30:2128:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:17:2130:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2130:36:2130:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2131:9:2131:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2131:29:2131:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:17:2133:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2133:37:2133:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:9:2134:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2134:9:2134:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2134:30:2134:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:17:2136:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2136:34:2136:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:9:2137:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2137:9:2137:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2137:28:2137:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:17:2139:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2139:34:2139:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:9:2140:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:2140:9:2140:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2140:28:2140:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:13:2142:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:23:2142:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2142:24:2142:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:13:2143:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:23:2143:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2143:24:2143:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2146:13:2146:14 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2146:18:2146:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2146:28:2146:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2146:34:2146:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2147:13:2147:14 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:18:2147:36 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2147:28:2147:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2147:34:2147:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2150:13:2150:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:2150:23:2150:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2150:23:2150:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2150:29:2150:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:13:2151:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:2151:23:2151:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2151:23:2151:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2151:29:2151:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:13:2152:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:2152:23:2152:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2152:23:2152:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2152:28:2152:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:13:2153:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:2153:23:2153:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2153:23:2153:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2153:29:2153:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:13:2154:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:2154:23:2154:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2154:23:2154:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2154:28:2154:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:13:2155:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:2155:23:2155:24 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2155:23:2155:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2155:29:2155:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:13:2158:20 | vec2_add | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:24:2158:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:24:2158:30 | ... + ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2158:29:2158:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:13:2159:20 | vec2_sub | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:24:2159:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:24:2159:30 | ... - ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2159:29:2159:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:13:2160:20 | vec2_mul | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:24:2160:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:24:2160:30 | ... * ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2160:29:2160:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:13:2161:20 | vec2_div | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:24:2161:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:24:2161:30 | ... / ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2161:29:2161:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:13:2162:20 | vec2_rem | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:24:2162:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:24:2162:30 | ... % ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2162:29:2162:30 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:17:2165:31 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2165:35:2165:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:9:2166:23 | vec2_add_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2166:9:2166:29 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2166:28:2166:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:17:2168:31 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2168:35:2168:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:9:2169:23 | vec2_sub_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2169:9:2169:29 | ... -= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2169:28:2169:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:17:2171:31 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2171:35:2171:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:9:2172:23 | vec2_mul_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2172:9:2172:29 | ... *= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2172:28:2172:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:17:2174:31 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2174:35:2174:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:9:2175:23 | vec2_div_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2175:9:2175:29 | ... /= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2175:28:2175:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:17:2177:31 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2177:35:2177:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:9:2178:23 | vec2_rem_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2178:9:2178:29 | ... %= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2178:28:2178:29 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:13:2181:23 | vec2_bitand | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:27:2181:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:27:2181:33 | ... & ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2181:32:2181:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:13:2182:22 | vec2_bitor | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:26:2182:27 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:26:2182:32 | ... \| ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2182:31:2182:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:13:2183:23 | vec2_bitxor | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:27:2183:28 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:27:2183:33 | ... ^ ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2183:32:2183:33 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:13:2184:20 | vec2_shl | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:24:2184:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:24:2184:33 | ... << ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2184:30:2184:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2185:13:2185:20 | vec2_shr | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:24:2185:25 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:24:2185:33 | ... >> ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2185:30:2185:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2188:17:2188:34 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2188:38:2188:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:9:2189:26 | vec2_bitand_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2189:9:2189:32 | ... &= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2189:31:2189:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:17:2191:33 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2191:37:2191:38 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:9:2192:25 | vec2_bitor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2192:9:2192:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2192:30:2192:31 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:17:2194:34 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2194:38:2194:39 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:9:2195:26 | vec2_bitxor_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2195:9:2195:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2195:31:2195:32 | v2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:17:2197:31 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2197:35:2197:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:9:2198:23 | vec2_shl_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2198:9:2198:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2198:29:2198:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2200:17:2200:31 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2200:35:2200:36 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:9:2201:23 | vec2_shr_assign | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2201:9:2201:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | -| main.rs:2201:29:2201:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2204:13:2204:20 | vec2_neg | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2204:24:2204:26 | - ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2204:25:2204:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:13:2205:20 | vec2_not | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:24:2205:26 | ! ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2205:25:2205:26 | v1 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2208:13:2208:24 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2208:28:2208:45 | ...::default(...) | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:13:2209:26 | vec2_zero_plus | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:30:2209:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:30:2209:63 | ... + ... | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2209:40:2209:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:46:2209:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2209:52:2209:63 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2213:13:2213:24 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2213:28:2213:45 | ...::default(...) | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2214:13:2214:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | -| main.rs:2214:30:2214:48 | Vec2 {...} | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2214:30:2214:64 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2214:40:2214:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2214:46:2214:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2214:53:2214:64 | default_vec2 | | main.rs:1843:5:1848:5 | Vec2 | -| main.rs:2224:18:2224:21 | SelfParam | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2224:24:2224:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2227:25:2229:5 | { ... } | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2228:9:2228:10 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2231:41:2233:5 | { ... } | | main.rs:2231:16:2231:39 | impl ... | -| main.rs:2232:9:2232:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2232:9:2232:20 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2232:17:2232:18 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2235:41:2237:5 | { ... } | | main.rs:2235:16:2235:39 | impl ... | -| main.rs:2236:9:2236:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2236:9:2236:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2245:13:2245:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:2245:13:2245:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | & | -| main.rs:2245:13:2245:42 | SelfParam | Ptr.TRef | main.rs:2239:5:2239:14 | S2 | -| main.rs:2246:13:2246:15 | _cx | | {EXTERNAL LOCATION} | & | -| main.rs:2246:13:2246:15 | _cx | TRef | {EXTERNAL LOCATION} | Context | -| main.rs:2247:44:2249:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:2247:44:2249:9 | { ... } | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2248:13:2248:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:2248:13:2248:38 | ...::Ready(...) | T | main.rs:2221:5:2221:14 | S1 | -| main.rs:2248:36:2248:37 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2252:41:2254:5 | { ... } | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2253:9:2253:10 | S2 | | main.rs:2239:5:2239:14 | S2 | -| main.rs:2253:9:2253:10 | S2 | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2256:22:2264:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2257:9:2257:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2257:9:2257:12 | f1(...) | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2257:9:2257:18 | await ... | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2257:9:2257:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2258:9:2258:12 | f2(...) | | main.rs:2231:16:2231:39 | impl ... | -| main.rs:2258:9:2258:18 | await ... | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2258:9:2258:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2259:9:2259:12 | f3(...) | | main.rs:2235:16:2235:39 | impl ... | -| main.rs:2259:9:2259:18 | await ... | | {EXTERNAL LOCATION} | () | -| main.rs:2260:9:2260:12 | f4(...) | | main.rs:2252:16:2252:39 | impl ... | -| main.rs:2260:9:2260:18 | await ... | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2260:9:2260:22 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2261:9:2261:10 | S2 | | main.rs:2239:5:2239:14 | S2 | -| main.rs:2261:9:2261:16 | await S2 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2261:9:2261:20 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2262:13:2262:13 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:13:2262:13 | b | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2262:17:2262:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2262:17:2262:28 | { ... } | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2262:25:2262:26 | S1 | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2263:9:2263:9 | b | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2263:9:2263:9 | b | dyn(Output) | main.rs:2221:5:2221:14 | S1 | -| main.rs:2263:9:2263:15 | await b | | main.rs:2221:5:2221:14 | S1 | -| main.rs:2263:9:2263:19 | ... .f() | | {EXTERNAL LOCATION} | () | -| main.rs:2274:15:2274:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2274:15:2274:19 | SelfParam | TRef | main.rs:2273:5:2275:5 | Self [trait Trait1] | -| main.rs:2274:22:2274:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2278:15:2278:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2278:15:2278:19 | SelfParam | TRef | main.rs:2277:5:2279:5 | Self [trait Trait2] | -| main.rs:2278:22:2278:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2282:15:2282:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2282:15:2282:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2282:22:2282:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2286:15:2286:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2286:15:2286:19 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2286:22:2286:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2289:37:2291:5 | { ... } | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2290:9:2290:10 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2290:9:2290:10 | S1 | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2294:18:2294:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2294:18:2294:22 | SelfParam | TRef | main.rs:2293:5:2295:5 | Self [trait MyTrait] | -| main.rs:2298:18:2298:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2298:18:2298:22 | SelfParam | TRef | main.rs:2268:5:2269:14 | S1 | -| main.rs:2298:31:2300:9 | { ... } | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2299:13:2299:14 | S2 | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2304:18:2304:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2304:18:2304:22 | SelfParam | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2304:18:2304:22 | SelfParam | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2304:30:2307:9 | { ... } | | main.rs:2303:10:2303:17 | T | -| main.rs:2305:17:2305:21 | S3(...) | | {EXTERNAL LOCATION} | & | -| main.rs:2305:17:2305:21 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:17:2305:21 | S3(...) | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:17:2305:21 | S3(...) | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2305:25:2305:28 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2305:25:2305:28 | self | TRef | main.rs:2271:5:2271:22 | S3 | -| main.rs:2305:25:2305:28 | self | TRef.T3 | main.rs:2303:10:2303:17 | T | -| main.rs:2306:13:2306:21 | t.clone() | | main.rs:2303:10:2303:17 | T | -| main.rs:2310:45:2312:5 | { ... } | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2311:9:2311:10 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2311:9:2311:10 | S1 | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2314:41:2314:41 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2314:52:2316:5 | { ... } | | main.rs:2314:23:2314:23 | A | -| main.rs:2315:9:2315:9 | t | | main.rs:2314:26:2314:38 | B | -| main.rs:2315:9:2315:17 | t.get_a() | | main.rs:2314:23:2314:23 | A | -| main.rs:2318:34:2318:34 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2318:59:2320:5 | { ... } | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2318:59:2320:5 | { ... } | impl(T) | main.rs:2318:24:2318:31 | T | -| main.rs:2319:9:2319:13 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2319:9:2319:13 | S3(...) | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2319:9:2319:13 | S3(...) | T3 | main.rs:2318:24:2318:31 | T | -| main.rs:2319:9:2319:13 | S3(...) | impl(T) | main.rs:2318:24:2318:31 | T | -| main.rs:2319:12:2319:12 | x | | main.rs:2318:24:2318:31 | T | -| main.rs:2322:34:2322:34 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2322:67:2324:5 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2322:67:2324:5 | { ... } | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2322:67:2324:5 | { ... } | T.impl(T) | main.rs:2322:24:2322:31 | T | -| main.rs:2323:9:2323:19 | Some(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2323:9:2323:19 | Some(...) | T | main.rs:2271:5:2271:22 | S3 | -| main.rs:2323:9:2323:19 | Some(...) | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2323:9:2323:19 | Some(...) | T.T3 | main.rs:2322:24:2322:31 | T | -| main.rs:2323:9:2323:19 | Some(...) | T.impl(T) | main.rs:2322:24:2322:31 | T | -| main.rs:2323:14:2323:18 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2323:14:2323:18 | S3(...) | T3 | main.rs:2322:24:2322:31 | T | -| main.rs:2323:17:2323:17 | x | | main.rs:2322:24:2322:31 | T | -| main.rs:2326:34:2326:34 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2326:78:2328:5 | { ... } | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T0.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2326:78:2328:5 | { ... } | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2326:78:2328:5 | { ... } | T1.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2327:9:2327:30 | TupleExpr | T0 | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:9:2327:30 | TupleExpr | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2327:9:2327:30 | TupleExpr | T0.T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | T0.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | T1 | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:9:2327:30 | TupleExpr | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2327:9:2327:30 | TupleExpr | T1.T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:9:2327:30 | TupleExpr | T1.impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:10:2327:22 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:10:2327:22 | S3(...) | | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2327:10:2327:22 | S3(...) | T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:10:2327:22 | S3(...) | impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:13:2327:13 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2327:13:2327:21 | x.clone() | | main.rs:2326:24:2326:31 | T | -| main.rs:2327:25:2327:29 | S3(...) | | main.rs:2271:5:2271:22 | S3 | -| main.rs:2327:25:2327:29 | S3(...) | | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2327:25:2327:29 | S3(...) | T3 | main.rs:2326:24:2326:31 | T | -| main.rs:2327:25:2327:29 | S3(...) | impl(T) | main.rs:2326:24:2326:31 | T | -| main.rs:2327:28:2327:28 | x | | main.rs:2326:24:2326:31 | T | -| main.rs:2330:26:2330:26 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2330:51:2332:5 | { ... } | | main.rs:2330:23:2330:23 | A | -| main.rs:2331:9:2331:9 | t | | main.rs:2330:29:2330:43 | impl ... | -| main.rs:2331:9:2331:17 | t.get_a() | | main.rs:2330:23:2330:23 | A | -| main.rs:2334:16:2348:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2335:13:2335:13 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2335:17:2335:20 | f1(...) | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2336:9:2336:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2336:9:2336:14 | x.f1() | | {EXTERNAL LOCATION} | () | -| main.rs:2337:9:2337:9 | x | | main.rs:2289:16:2289:35 | impl ... + ... | -| main.rs:2337:9:2337:14 | x.f2() | | {EXTERNAL LOCATION} | () | -| main.rs:2338:13:2338:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2338:17:2338:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2339:13:2339:13 | b | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2339:17:2339:33 | uses_my_trait1(...) | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2339:32:2339:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:13:2340:13 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2340:17:2340:32 | get_a_my_trait(...) | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2341:13:2341:13 | c | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2341:17:2341:33 | uses_my_trait2(...) | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2341:32:2341:32 | a | | main.rs:2310:28:2310:43 | impl ... | -| main.rs:2342:13:2342:13 | d | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2342:17:2342:34 | uses_my_trait2(...) | | main.rs:2270:5:2270:14 | S2 | -| main.rs:2342:32:2342:33 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:13:2343:13 | e | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:17:2343:35 | get_a_my_trait2(...) | | main.rs:2318:43:2318:57 | impl ... | -| main.rs:2343:17:2343:35 | get_a_my_trait2(...) | impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:17:2343:43 | ... .get_a() | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2343:33:2343:34 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:13:2346:13 | f | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | T | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2346:17:2346:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:17:2346:44 | ... .unwrap() | | main.rs:2322:50:2322:64 | impl ... | -| main.rs:2346:17:2346:44 | ... .unwrap() | impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:17:2346:52 | ... .get_a() | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2346:33:2346:34 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:13:2347:13 | g | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T0 | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T1 | main.rs:2326:61:2326:75 | impl ... | -| main.rs:2347:17:2347:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:37 | ... .0 | | main.rs:2326:44:2326:58 | impl ... | -| main.rs:2347:17:2347:37 | ... .0 | impl(T) | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:17:2347:45 | ... .get_a() | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2347:33:2347:34 | S1 | | main.rs:2268:5:2269:14 | S1 | -| main.rs:2358:16:2358:20 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2358:16:2358:20 | SelfParam | TRef | main.rs:2354:5:2355:13 | S | -| main.rs:2358:31:2360:9 | { ... } | | main.rs:2354:5:2355:13 | S | -| main.rs:2359:13:2359:13 | S | | main.rs:2354:5:2355:13 | S | -| main.rs:2369:26:2371:9 | { ... } | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2369:26:2371:9 | { ... } | T | main.rs:2368:10:2368:10 | T | -| main.rs:2370:13:2370:38 | MyVec {...} | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2370:13:2370:38 | MyVec {...} | T | main.rs:2368:10:2368:10 | T | -| main.rs:2370:27:2370:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2370:27:2370:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2370:27:2370:36 | ...::new(...) | T | main.rs:2368:10:2368:10 | T | -| main.rs:2373:17:2373:25 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2373:17:2373:25 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2373:17:2373:25 | SelfParam | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2373:28:2373:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2373:38:2375:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2374:13:2374:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2374:13:2374:16 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2374:13:2374:16 | self | TRef.T | main.rs:2368:10:2368:10 | T | -| main.rs:2374:13:2374:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2374:13:2374:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2374:13:2374:21 | self.data | T | main.rs:2368:10:2368:10 | T | -| main.rs:2374:13:2374:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2374:28:2374:32 | value | | main.rs:2368:10:2368:10 | T | -| main.rs:2382:18:2382:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2382:18:2382:22 | SelfParam | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2382:18:2382:22 | SelfParam | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2382:25:2382:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2382:56:2384:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2382:56:2384:9 | { ... } | TRef | main.rs:2378:10:2378:10 | T | -| main.rs:2383:13:2383:29 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2383:13:2383:29 | &... | TRef | main.rs:2378:10:2378:10 | T | -| main.rs:2383:14:2383:17 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2383:14:2383:17 | self | TRef | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2383:14:2383:17 | self | TRef.T | main.rs:2378:10:2378:10 | T | -| main.rs:2383:14:2383:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:2383:14:2383:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:2383:14:2383:22 | self.data | T | main.rs:2378:10:2378:10 | T | -| main.rs:2383:14:2383:29 | ...[index] | | main.rs:2378:10:2378:10 | T | -| main.rs:2383:24:2383:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:2387:22:2387:26 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2387:22:2387:26 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2387:22:2387:26 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2387:35:2389:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2388:13:2388:13 | x | | main.rs:2354:5:2355:13 | S | -| main.rs:2388:17:2388:21 | slice | | {EXTERNAL LOCATION} | & | -| main.rs:2388:17:2388:21 | slice | TRef | {EXTERNAL LOCATION} | [] | -| main.rs:2388:17:2388:21 | slice | TRef.TSlice | main.rs:2354:5:2355:13 | S | -| main.rs:2388:17:2388:24 | slice[0] | | main.rs:2354:5:2355:13 | S | -| main.rs:2388:17:2388:30 | ... .foo() | | main.rs:2354:5:2355:13 | S | -| main.rs:2388:23:2388:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2391:37:2391:37 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2391:43:2391:43 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2395:9:2395:9 | a | | main.rs:2391:20:2391:34 | T | -| main.rs:2395:11:2395:11 | b | | {EXTERNAL LOCATION} | usize | -| main.rs:2398:16:2409:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2399:17:2399:19 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2399:17:2399:19 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2399:23:2399:34 | ...::new(...) | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2399:23:2399:34 | ...::new(...) | T | main.rs:2354:5:2355:13 | S | -| main.rs:2400:9:2400:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2400:9:2400:11 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2400:9:2400:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2400:18:2400:18 | S | | main.rs:2354:5:2355:13 | S | -| main.rs:2401:9:2401:11 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2401:9:2401:11 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2401:9:2401:14 | vec[0] | | main.rs:2354:5:2355:13 | S | -| main.rs:2401:9:2401:20 | ... .foo() | | main.rs:2354:5:2355:13 | S | -| main.rs:2401:13:2401:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2403:13:2403:14 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:13:2403:14 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2403:21:2403:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2403:26:2403:28 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2403:26:2403:28 | [...] | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2403:27:2403:27 | S | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:13:2404:13 | x | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:17:2404:18 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2404:17:2404:18 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2404:17:2404:21 | xs[0] | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:17:2404:27 | ... .foo() | | main.rs:2354:5:2355:13 | S | -| main.rs:2404:20:2404:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2406:29:2406:31 | vec | | main.rs:2363:5:2366:5 | MyVec | -| main.rs:2406:29:2406:31 | vec | T | main.rs:2354:5:2355:13 | S | -| main.rs:2406:34:2406:34 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2408:9:2408:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2408:23:2408:25 | &xs | | {EXTERNAL LOCATION} | & | -| main.rs:2408:23:2408:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2408:23:2408:25 | &xs | TRef.TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2408:24:2408:25 | xs | | {EXTERNAL LOCATION} | [;] | -| main.rs:2408:24:2408:25 | xs | TArray | main.rs:2354:5:2355:13 | S | -| main.rs:2413:16:2415:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2414:13:2414:13 | x | | {EXTERNAL LOCATION} | String | -| main.rs:2414:17:2414:46 | MacroExpr | | {EXTERNAL LOCATION} | String | -| main.rs:2414:25:2414:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:25:2414:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2414:25:2414:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2414:25:2414:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2414:25:2414:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:2414:38:2414:45 | "World!" | | {EXTERNAL LOCATION} | & | -| main.rs:2414:38:2414:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2423:19:2423:22 | SelfParam | | main.rs:2419:5:2424:5 | Self [trait MyAdd] | -| main.rs:2423:25:2423:27 | rhs | | main.rs:2419:17:2419:26 | Rhs | -| main.rs:2430:19:2430:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:25:2430:29 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2430:45:2432:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2431:13:2431:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:19:2439:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:25:2439:29 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2439:25:2439:29 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2439:46:2441:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2440:13:2440:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2440:14:2440:18 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2440:14:2440:18 | value | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:19:2448:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | -| main.rs:2448:25:2448:29 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2448:46:2454:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:13:2453:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2449:13:2453:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2449:16:2449:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2449:22:2451:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2449:22:2451:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2450:17:2450:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2450:17:2450:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2451:20:2453:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2451:20:2453:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2452:17:2452:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2452:17:2452:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2463:19:2463:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:19:2463:22 | SelfParam | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:25:2463:29 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2463:25:2463:29 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2463:54:2465:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:13:2464:39 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:15:2464:22 | (...) | | main.rs:2459:10:2459:17 | T | -| main.rs:2464:16:2464:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:16:2464:19 | self | T | main.rs:2459:10:2459:17 | T | -| main.rs:2464:16:2464:21 | self.0 | | main.rs:2459:10:2459:17 | T | -| main.rs:2464:31:2464:35 | other | | main.rs:2457:5:2457:19 | S | -| main.rs:2464:31:2464:35 | other | T | main.rs:2459:10:2459:17 | T | -| main.rs:2464:31:2464:37 | other.0 | | main.rs:2459:10:2459:17 | T | -| main.rs:2472:19:2472:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2472:19:2472:22 | SelfParam | T | main.rs:2468:10:2468:17 | T | -| main.rs:2472:25:2472:29 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2472:51:2474:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:13:2473:37 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:15:2473:22 | (...) | | main.rs:2468:10:2468:17 | T | -| main.rs:2473:16:2473:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2473:16:2473:19 | self | T | main.rs:2468:10:2468:17 | T | -| main.rs:2473:16:2473:21 | self.0 | | main.rs:2468:10:2468:17 | T | -| main.rs:2473:31:2473:35 | other | | main.rs:2468:10:2468:17 | T | -| main.rs:2484:19:2484:22 | SelfParam | | main.rs:2457:5:2457:19 | S | -| main.rs:2484:19:2484:22 | SelfParam | T | main.rs:2477:14:2477:14 | T | -| main.rs:2484:25:2484:29 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2484:25:2484:29 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2484:55:2486:9 | { ... } | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:13:2485:37 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:15:2485:22 | (...) | | main.rs:2477:14:2477:14 | T | -| main.rs:2485:16:2485:19 | self | | main.rs:2457:5:2457:19 | S | -| main.rs:2485:16:2485:19 | self | T | main.rs:2477:14:2477:14 | T | -| main.rs:2485:16:2485:21 | self.0 | | main.rs:2477:14:2477:14 | T | -| main.rs:2485:31:2485:35 | other | | {EXTERNAL LOCATION} | & | -| main.rs:2485:31:2485:35 | other | TRef | main.rs:2477:14:2477:14 | T | -| main.rs:2491:20:2491:24 | value | | main.rs:2489:18:2489:18 | T | -| main.rs:2496:20:2496:24 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2496:40:2498:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2497:13:2497:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2503:20:2503:24 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2503:41:2509:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:13:2508:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:13:2508:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:2504:16:2504:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2504:22:2506:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2504:22:2506:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2505:17:2505:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2505:17:2505:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2506:20:2508:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2506:20:2508:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2507:17:2507:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2507:17:2507:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2514:21:2514:25 | value | | main.rs:2512:19:2512:19 | T | -| main.rs:2514:31:2514:31 | x | | main.rs:2512:5:2515:5 | Self [trait MyFrom2] | -| main.rs:2519:21:2519:25 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:33:2519:33 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2519:48:2521:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2520:13:2520:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:21:2526:25 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2526:34:2526:34 | _ | | {EXTERNAL LOCATION} | i64 | -| main.rs:2526:49:2532:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2527:13:2531:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:2527:16:2527:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:2527:22:2529:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2528:17:2528:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2529:20:2531:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2530:17:2530:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2537:15:2537:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2540:15:2540:15 | x | | main.rs:2535:5:2541:5 | Self [trait MySelfTrait] | -| main.rs:2545:15:2545:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2545:31:2547:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:13:2546:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:13:2546:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2546:17:2546:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2550:15:2550:15 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2550:32:2552:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:13:2551:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:13:2551:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:2551:17:2551:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2557:15:2557:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2557:31:2559:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2558:13:2558:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2558:13:2558:13 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2562:15:2562:15 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2562:32:2564:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:2563:13:2563:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:2567:16:2592:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2568:13:2568:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2568:22:2568:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2568:22:2568:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:9:2569:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2569:18:2569:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:9:2570:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:18:2570:22 | &5i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2570:18:2570:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2570:19:2570:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:9:2571:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:9:2571:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2571:18:2571:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2573:9:2573:15 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2573:9:2573:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:9:2573:31 | ... .my_add(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2573:11:2573:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:24:2573:30 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2573:24:2573:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2573:26:2573:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:9:2574:15 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2574:9:2574:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:11:2574:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2574:24:2574:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:9:2575:15 | S(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2575:9:2575:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:9:2575:29 | ... .my_add(...) | | main.rs:2457:5:2457:19 | S | -| main.rs:2575:11:2575:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:24:2575:28 | &3i64 | | {EXTERNAL LOCATION} | & | -| main.rs:2575:24:2575:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | -| main.rs:2575:25:2575:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:17:2577:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2577:30:2577:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:13:2578:13 | y | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:17:2578:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2578:30:2578:33 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2579:13:2579:13 | z | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:22:2579:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2579:38:2579:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:9:2580:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2580:23:2580:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2580:30:2580:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2581:9:2581:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2581:23:2581:26 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2581:29:2581:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:9:2582:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2582:27:2582:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2582:34:2582:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:9:2584:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2584:17:2584:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:9:2585:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2585:17:2585:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2586:9:2586:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2586:18:2586:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:9:2587:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2587:18:2587:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2588:9:2588:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2588:25:2588:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:9:2589:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2589:25:2589:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2590:9:2590:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2590:25:2590:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2591:9:2591:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2591:25:2591:28 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2599:26:2601:9 | { ... } | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2600:13:2600:25 | MyCallable {...} | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:17:2603:21 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2603:17:2603:21 | SelfParam | TRef | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2603:31:2605:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:2604:13:2604:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2604:13:2604:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2608:16:2715:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:9:2611:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2611:13:2611:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:18:2611:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2611:18:2611:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:19:2611:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:22:2611:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:25:2611:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2611:28:2611:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:9:2612:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2612:18:2612:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2612:18:2612:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:18:2612:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | -| main.rs:2612:19:2612:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:22:2612:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:25:2612:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:32:2612:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | -| main.rs:2612:32:2612:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | -| main.rs:2612:40:2612:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2612:43:2612:44 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:9:2613:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2613:13:2613:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:18:2613:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2613:18:2613:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:18:2613:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | -| main.rs:2613:18:2613:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:19:2613:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:22:2613:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:25:2613:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2613:40:2613:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2615:13:2615:17 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:13:2615:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:13:2615:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:21:2615:31 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2615:21:2615:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:21:2615:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:22:2615:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:27:2615:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:27:2615:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2615:30:2615:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2615:30:2615:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:9:2616:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2616:13:2616:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:13:2616:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:18:2616:22 | vals1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2616:18:2616:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2616:18:2616:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | -| main.rs:2616:24:2616:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2618:13:2618:17 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:13:2618:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:21:2618:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2618:21:2618:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:22:2618:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2618:28:2618:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2619:9:2619:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2619:13:2619:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2619:18:2619:22 | vals2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2619:18:2619:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2619:24:2619:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2621:13:2621:17 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:13:2621:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:26:2621:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:31:2621:39 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2621:31:2621:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:31:2621:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:32:2621:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:32:2621:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:35:2621:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:35:2621:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2621:38:2621:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2621:38:2621:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:9:2622:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2622:13:2622:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:18:2622:22 | vals3 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2622:18:2622:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2622:24:2622:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2624:13:2624:17 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:13:2624:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:26:2624:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:31:2624:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2624:31:2624:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:31:2624:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:32:2624:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2624:32:2624:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2624:35:2624:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2625:9:2625:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2625:13:2625:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:2625:18:2625:22 | vals4 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2625:18:2625:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2625:24:2625:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2627:17:2627:24 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:17:2627:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2627:17:2627:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:28:2627:48 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2627:28:2627:48 | [...] | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2627:28:2627:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:29:2627:33 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:29:2627:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:36:2627:40 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:36:2627:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2627:43:2627:47 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2627:43:2627:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:9:2628:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2628:13:2628:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2628:13:2628:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2628:13:2628:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:18:2628:26 | &strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2628:18:2628:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:18:2628:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2628:18:2628:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:19:2628:26 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2628:19:2628:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2628:19:2628:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2628:28:2628:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:9:2629:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2629:13:2629:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2629:13:2629:13 | s | TRef | {EXTERNAL LOCATION} | & | -| main.rs:2629:13:2629:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:18:2629:30 | &mut strings1 | | {EXTERNAL LOCATION} | & | -| main.rs:2629:18:2629:30 | &mut strings1 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:18:2629:30 | &mut strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | -| main.rs:2629:18:2629:30 | &mut strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:23:2629:30 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2629:23:2629:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2629:23:2629:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2629:32:2629:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:9:2630:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2630:13:2630:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2630:13:2630:13 | s | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2630:18:2630:25 | strings1 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2630:18:2630:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | -| main.rs:2630:18:2630:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2630:27:2630:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2632:13:2632:20 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2632:13:2632:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2633:9:2637:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2633:9:2637:9 | [...] | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2634:13:2634:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2634:26:2634:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2634:26:2634:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2635:13:2635:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2635:26:2635:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2635:26:2635:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2636:13:2636:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2636:26:2636:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2636:26:2636:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2638:9:2638:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2638:13:2638:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:2638:18:2638:25 | strings2 | | {EXTERNAL LOCATION} | [;] | -| main.rs:2638:18:2638:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2638:27:2638:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2640:13:2640:20 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2640:13:2640:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2640:13:2640:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2641:9:2645:9 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2641:9:2645:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:9:2645:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2641:10:2645:9 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2641:10:2645:9 | [...] | TArray | {EXTERNAL LOCATION} | String | -| main.rs:2642:13:2642:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2642:26:2642:30 | "foo" | | {EXTERNAL LOCATION} | & | -| main.rs:2642:26:2642:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2643:13:2643:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2643:26:2643:30 | "bar" | | {EXTERNAL LOCATION} | & | -| main.rs:2643:26:2643:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2644:13:2644:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:2644:26:2644:30 | "baz" | | {EXTERNAL LOCATION} | & | -| main.rs:2644:26:2644:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2646:9:2646:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2646:13:2646:13 | s | | {EXTERNAL LOCATION} | & | -| main.rs:2646:13:2646:13 | s | TRef | {EXTERNAL LOCATION} | String | -| main.rs:2646:18:2646:25 | strings3 | | {EXTERNAL LOCATION} | & | -| main.rs:2646:18:2646:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | -| main.rs:2646:18:2646:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | -| main.rs:2646:27:2646:28 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2648:13:2648:21 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:13:2648:21 | callables | TArray | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:25:2648:81 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2648:25:2648:81 | [...] | TArray | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:26:2648:42 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:45:2648:61 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2648:64:2648:80 | ...::new(...) | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2649:9:2653:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2649:13:2649:13 | c | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2650:12:2650:20 | callables | | {EXTERNAL LOCATION} | [;] | -| main.rs:2650:12:2650:20 | callables | TArray | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2651:9:2653:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2652:17:2652:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:2652:26:2652:26 | c | | main.rs:2596:5:2596:24 | MyCallable | -| main.rs:2652:26:2652:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:2657:9:2657:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2657:13:2657:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:18:2657:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:18:2657:22 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2657:18:2657:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:21:2657:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2657:24:2657:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:9:2658:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2658:13:2658:13 | u | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:13:2658:13 | u | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:13:2658:13 | u | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:18:2658:26 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2658:18:2658:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | -| main.rs:2658:18:2658:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:18:2658:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:19:2658:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:19:2658:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2658:19:2658:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:19:2658:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:24:2658:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2658:24:2658:25 | 10 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2658:28:2658:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2659:13:2659:17 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:13:2659:17 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:21:2659:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:21:2659:25 | 0..10 | | {EXTERNAL LOCATION} | Range | -| main.rs:2659:21:2659:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2659:24:2659:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:9:2660:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2660:13:2660:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:18:2660:22 | range | | {EXTERNAL LOCATION} | Range | -| main.rs:2660:18:2660:22 | range | Idx | {EXTERNAL LOCATION} | i32 | -| main.rs:2660:24:2660:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2661:13:2661:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2661:26:2661:27 | .. | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:9:2662:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2662:18:2662:48 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2662:19:2662:36 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2662:19:2662:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:20:2662:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:26:2662:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:32:2662:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2662:38:2662:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | -| main.rs:2662:50:2662:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2664:13:2664:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2664:13:2664:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2665:9:2668:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:2665:9:2668:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2666:20:2666:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2667:18:2667:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:9:2669:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2669:13:2669:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:18:2669:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:2669:18:2669:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:2669:25:2669:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2673:13:2673:17 | vals3 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2673:21:2673:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2673:26:2673:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:29:2673:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2673:32:2673:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2073:24:2073:28 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2073:24:2073:28 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:31:2073:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2073:31:2073:35 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2073:75:2075:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2073:75:2075:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2074:13:2074:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:13:2074:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2074:13:2074:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:2074:14:2074:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:14:2074:17 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:14:2074:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:14:2074:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:23:2074:26 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2074:23:2074:26 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:23:2074:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:43:2074:62 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2074:43:2074:62 | &... | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:44:2074:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:45:2074:49 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:45:2074:49 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:45:2074:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:45:2074:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2074:55:2074:59 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2074:55:2074:59 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2074:55:2074:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2077:15:2077:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2077:15:2077:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:22:2077:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2077:22:2077:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2077:44:2079:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:13:2078:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:13:2078:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2078:13:2078:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:13:2078:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:22:2078:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:22:2078:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:22:2078:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2078:33:2078:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2078:33:2078:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:33:2078:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2078:33:2078:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2078:42:2078:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2078:42:2078:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2078:42:2078:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2081:15:2081:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2081:15:2081:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:22:2081:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2081:22:2081:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2081:44:2083:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:13:2082:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:13:2082:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2082:13:2082:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:13:2082:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:23:2082:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:23:2082:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:23:2082:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2082:34:2082:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2082:34:2082:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:34:2082:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2082:34:2082:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2082:44:2082:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2082:44:2082:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2082:44:2082:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2085:15:2085:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2085:15:2085:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:22:2085:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2085:22:2085:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2085:44:2087:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:13:2086:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:13:2086:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2086:13:2086:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:13:2086:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:22:2086:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:22:2086:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:22:2086:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2086:33:2086:36 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2086:33:2086:36 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:33:2086:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2086:33:2086:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2086:42:2086:46 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2086:42:2086:46 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2086:42:2086:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2089:15:2089:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2089:15:2089:19 | SelfParam | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:22:2089:26 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2089:22:2089:26 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2089:44:2091:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:13:2090:16 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:13:2090:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:13:2090:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:13:2090:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:23:2090:27 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:23:2090:27 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:23:2090:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:34:2090:37 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2090:34:2090:37 | self | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:34:2090:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2090:34:2090:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2090:44:2090:48 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2090:44:2090:48 | other | TRef | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2090:44:2090:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2094:26:2094:26 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2094:32:2094:32 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:9:2095:9 | a | | main.rs:2094:18:2094:23 | T | +| main.rs:2095:13:2095:13 | b | | main.rs:2094:18:2094:23 | T | +| main.rs:2098:16:2229:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2102:13:2102:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2102:22:2102:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2102:23:2102:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2102:23:2102:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2102:31:2102:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:13:2103:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2103:22:2103:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2103:23:2103:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2103:23:2103:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2103:31:2103:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:13:2104:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:22:2104:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:23:2104:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2104:23:2104:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2104:30:2104:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:13:2105:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2105:22:2105:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2105:23:2105:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2105:23:2105:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2105:31:2105:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:13:2106:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2106:22:2106:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2106:23:2106:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2106:23:2106:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2106:30:2106:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:13:2107:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2107:22:2107:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2107:23:2107:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2107:23:2107:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2107:32:2107:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:13:2110:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:23:2110:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:23:2110:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2110:31:2110:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:13:2111:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:23:2111:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:23:2111:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2111:31:2111:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:13:2112:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:23:2112:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:23:2112:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2112:31:2112:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:13:2113:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:23:2113:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:23:2113:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2113:31:2113:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:13:2114:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:23:2114:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:23:2114:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2114:31:2114:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:39:2115:42 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2115:45:2115:48 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:17:2118:30 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2118:34:2118:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:9:2119:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2119:9:2119:31 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2119:27:2119:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:17:2121:30 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2121:34:2121:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:9:2122:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2122:9:2122:31 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2122:27:2122:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:17:2124:30 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2124:34:2124:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:9:2125:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2125:9:2125:31 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2125:27:2125:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:17:2127:30 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2127:34:2127:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:9:2128:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2128:9:2128:31 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2128:27:2128:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:17:2130:30 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2130:34:2130:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:9:2131:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2131:9:2131:31 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2131:27:2131:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:13:2134:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:26:2134:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:26:2134:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2134:34:2134:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:13:2135:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:25:2135:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:25:2135:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2135:33:2135:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:13:2136:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:26:2136:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:26:2136:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2136:34:2136:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:13:2137:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:23:2137:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:23:2137:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2137:32:2137:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:13:2138:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:23:2138:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:23:2138:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2138:32:2138:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:17:2141:33 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2141:37:2141:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:9:2142:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2142:9:2142:34 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2142:30:2142:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:17:2144:32 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2144:36:2144:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:9:2145:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2145:9:2145:33 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2145:29:2145:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:17:2147:33 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2147:37:2147:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:9:2148:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2148:9:2148:34 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2148:30:2148:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:17:2150:30 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2150:34:2150:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:9:2151:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2151:9:2151:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2151:28:2151:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:17:2153:30 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2153:34:2153:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:9:2154:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:2154:9:2154:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2154:28:2154:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:13:2156:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:23:2156:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2156:24:2156:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:13:2157:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:23:2157:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2157:24:2157:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2160:13:2160:14 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2160:18:2160:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2160:28:2160:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2160:34:2160:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2161:13:2161:14 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:18:2161:36 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2161:28:2161:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2161:34:2161:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2164:13:2164:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:2164:23:2164:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2164:23:2164:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2164:29:2164:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:13:2165:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:2165:23:2165:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2165:23:2165:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2165:29:2165:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:13:2166:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:2166:23:2166:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2166:23:2166:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2166:28:2166:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:13:2167:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:2167:23:2167:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2167:23:2167:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2167:29:2167:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:13:2168:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:2168:23:2168:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2168:23:2168:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2168:28:2168:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:13:2169:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:2169:23:2169:24 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2169:23:2169:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2169:29:2169:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:13:2172:20 | vec2_add | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:24:2172:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:24:2172:30 | ... + ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2172:29:2172:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:13:2173:20 | vec2_sub | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:24:2173:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:24:2173:30 | ... - ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2173:29:2173:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:13:2174:20 | vec2_mul | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:24:2174:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:24:2174:30 | ... * ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2174:29:2174:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:13:2175:20 | vec2_div | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:24:2175:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:24:2175:30 | ... / ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2175:29:2175:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:13:2176:20 | vec2_rem | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:24:2176:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:24:2176:30 | ... % ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2176:29:2176:30 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:17:2179:31 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2179:35:2179:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:9:2180:23 | vec2_add_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2180:9:2180:29 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2180:28:2180:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:17:2182:31 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2182:35:2182:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:9:2183:23 | vec2_sub_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2183:9:2183:29 | ... -= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2183:28:2183:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:17:2185:31 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2185:35:2185:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:9:2186:23 | vec2_mul_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2186:9:2186:29 | ... *= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2186:28:2186:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:17:2188:31 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2188:35:2188:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:9:2189:23 | vec2_div_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2189:9:2189:29 | ... /= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2189:28:2189:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:17:2191:31 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2191:35:2191:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:9:2192:23 | vec2_rem_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2192:9:2192:29 | ... %= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2192:28:2192:29 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:13:2195:23 | vec2_bitand | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:27:2195:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:27:2195:33 | ... & ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2195:32:2195:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:13:2196:22 | vec2_bitor | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:26:2196:27 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:26:2196:32 | ... \| ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2196:31:2196:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:13:2197:23 | vec2_bitxor | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:27:2197:28 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:27:2197:33 | ... ^ ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2197:32:2197:33 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:13:2198:20 | vec2_shl | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:24:2198:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:24:2198:33 | ... << ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2198:30:2198:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2199:13:2199:20 | vec2_shr | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:24:2199:25 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:24:2199:33 | ... >> ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2199:30:2199:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2202:17:2202:34 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2202:38:2202:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:9:2203:26 | vec2_bitand_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2203:9:2203:32 | ... &= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2203:31:2203:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:17:2205:33 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2205:37:2205:38 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:9:2206:25 | vec2_bitor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2206:9:2206:31 | ... \|= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2206:30:2206:31 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:17:2208:34 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2208:38:2208:39 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:9:2209:26 | vec2_bitxor_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2209:9:2209:32 | ... ^= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2209:31:2209:32 | v2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:17:2211:31 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2211:35:2211:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:9:2212:23 | vec2_shl_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2212:9:2212:32 | ... <<= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2212:29:2212:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2214:17:2214:31 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2214:35:2214:36 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:9:2215:23 | vec2_shr_assign | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2215:9:2215:32 | ... >>= ... | | {EXTERNAL LOCATION} | () | +| main.rs:2215:29:2215:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2218:13:2218:20 | vec2_neg | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2218:24:2218:26 | - ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2218:25:2218:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:13:2219:20 | vec2_not | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:24:2219:26 | ! ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2219:25:2219:26 | v1 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2222:13:2222:24 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2222:28:2222:45 | ...::default(...) | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:13:2223:26 | vec2_zero_plus | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:30:2223:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:30:2223:63 | ... + ... | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2223:40:2223:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2223:46:2223:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2223:52:2223:63 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2227:13:2227:24 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2227:28:2227:45 | ...::default(...) | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2228:13:2228:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:2228:30:2228:48 | Vec2 {...} | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2228:30:2228:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2228:40:2228:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2228:46:2228:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2228:53:2228:64 | default_vec2 | | main.rs:1857:5:1862:5 | Vec2 | +| main.rs:2238:18:2238:21 | SelfParam | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2238:24:2238:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2241:25:2243:5 | { ... } | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2242:9:2242:10 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2245:41:2247:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2245:41:2247:5 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2246:9:2246:20 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2246:9:2246:20 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2246:17:2246:18 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2249:41:2251:5 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2249:41:2251:5 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2250:9:2250:16 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2250:9:2250:16 | { ... } | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2259:13:2259:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:2259:13:2259:42 | SelfParam | Ptr | {EXTERNAL LOCATION} | &mut | +| main.rs:2259:13:2259:42 | SelfParam | Ptr.TRefMut | main.rs:2253:5:2253:14 | S2 | +| main.rs:2260:13:2260:15 | _cx | | {EXTERNAL LOCATION} | &mut | +| main.rs:2260:13:2260:15 | _cx | TRefMut | {EXTERNAL LOCATION} | Context | +| main.rs:2261:44:2263:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:2261:44:2263:9 | { ... } | T | main.rs:2235:5:2235:14 | S1 | +| main.rs:2262:13:2262:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:2262:13:2262:38 | ...::Ready(...) | T | main.rs:2235:5:2235:14 | S1 | +| main.rs:2262:36:2262:37 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2266:41:2268:5 | { ... } | | main.rs:2253:5:2253:14 | S2 | +| main.rs:2267:9:2267:10 | S2 | | main.rs:2253:5:2253:14 | S2 | +| main.rs:2270:22:2278:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2271:9:2271:12 | f1(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2271:9:2271:12 | f1(...) | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2271:9:2271:18 | await ... | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2271:9:2271:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2272:9:2272:12 | f2(...) | | main.rs:2245:16:2245:39 | impl ... | +| main.rs:2272:9:2272:18 | await ... | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2272:9:2272:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2273:9:2273:12 | f3(...) | | main.rs:2249:16:2249:39 | impl ... | +| main.rs:2273:9:2273:18 | await ... | | {EXTERNAL LOCATION} | () | +| main.rs:2274:9:2274:12 | f4(...) | | main.rs:2266:16:2266:39 | impl ... | +| main.rs:2274:9:2274:18 | await ... | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2274:9:2274:22 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2275:9:2275:10 | S2 | | main.rs:2253:5:2253:14 | S2 | +| main.rs:2275:9:2275:16 | await S2 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2275:9:2275:20 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2276:13:2276:13 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2276:13:2276:13 | b | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2276:17:2276:28 | { ... } | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2276:17:2276:28 | { ... } | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2276:25:2276:26 | S1 | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2277:9:2277:9 | b | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2277:9:2277:9 | b | dyn(Output) | main.rs:2235:5:2235:14 | S1 | +| main.rs:2277:9:2277:15 | await b | | main.rs:2235:5:2235:14 | S1 | +| main.rs:2277:9:2277:19 | ... .f() | | {EXTERNAL LOCATION} | () | +| main.rs:2288:15:2288:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2288:15:2288:19 | SelfParam | TRef | main.rs:2287:5:2289:5 | Self [trait Trait1] | +| main.rs:2288:22:2288:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2292:15:2292:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2292:15:2292:19 | SelfParam | TRef | main.rs:2291:5:2293:5 | Self [trait Trait2] | +| main.rs:2292:22:2292:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2296:15:2296:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2296:15:2296:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2296:22:2296:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2300:15:2300:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2300:15:2300:19 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2300:22:2300:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2303:37:2305:5 | { ... } | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2304:9:2304:10 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2308:18:2308:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2308:18:2308:22 | SelfParam | TRef | main.rs:2307:5:2309:5 | Self [trait MyTrait] | +| main.rs:2312:18:2312:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2312:18:2312:22 | SelfParam | TRef | main.rs:2282:5:2283:14 | S1 | +| main.rs:2312:31:2314:9 | { ... } | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2313:13:2313:14 | S2 | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2318:18:2318:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2318:18:2318:22 | SelfParam | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2318:18:2318:22 | SelfParam | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2318:30:2321:9 | { ... } | | main.rs:2317:10:2317:17 | T | +| main.rs:2319:17:2319:21 | S3(...) | | {EXTERNAL LOCATION} | & | +| main.rs:2319:17:2319:21 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:17:2319:21 | S3(...) | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:17:2319:21 | S3(...) | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2319:25:2319:28 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2319:25:2319:28 | self | TRef | main.rs:2285:5:2285:22 | S3 | +| main.rs:2319:25:2319:28 | self | TRef.T3 | main.rs:2317:10:2317:17 | T | +| main.rs:2320:13:2320:21 | t.clone() | | main.rs:2317:10:2317:17 | T | +| main.rs:2324:45:2326:5 | { ... } | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2325:9:2325:10 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2328:41:2328:41 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2328:52:2330:5 | { ... } | | main.rs:2328:23:2328:23 | A | +| main.rs:2329:9:2329:9 | t | | main.rs:2328:26:2328:38 | B | +| main.rs:2329:9:2329:17 | t.get_a() | | main.rs:2328:23:2328:23 | A | +| main.rs:2332:34:2332:34 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2332:59:2334:5 | { ... } | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2332:59:2334:5 | { ... } | impl(T) | main.rs:2332:24:2332:31 | T | +| main.rs:2333:9:2333:13 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2333:9:2333:13 | S3(...) | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2333:9:2333:13 | S3(...) | T3 | main.rs:2332:24:2332:31 | T | +| main.rs:2333:9:2333:13 | S3(...) | impl(T) | main.rs:2332:24:2332:31 | T | +| main.rs:2333:12:2333:12 | x | | main.rs:2332:24:2332:31 | T | +| main.rs:2336:34:2336:34 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2336:67:2338:5 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2336:67:2338:5 | { ... } | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2336:67:2338:5 | { ... } | T.impl(T) | main.rs:2336:24:2336:31 | T | +| main.rs:2337:9:2337:19 | Some(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2337:9:2337:19 | Some(...) | T | main.rs:2285:5:2285:22 | S3 | +| main.rs:2337:9:2337:19 | Some(...) | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2337:9:2337:19 | Some(...) | T.T3 | main.rs:2336:24:2336:31 | T | +| main.rs:2337:9:2337:19 | Some(...) | T.impl(T) | main.rs:2336:24:2336:31 | T | +| main.rs:2337:14:2337:18 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2337:14:2337:18 | S3(...) | T3 | main.rs:2336:24:2336:31 | T | +| main.rs:2337:17:2337:17 | x | | main.rs:2336:24:2336:31 | T | +| main.rs:2340:34:2340:34 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2340:78:2342:5 | { ... } | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T0.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2340:78:2342:5 | { ... } | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2340:78:2342:5 | { ... } | T1.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2341:9:2341:30 | TupleExpr | T0 | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:9:2341:30 | TupleExpr | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2341:9:2341:30 | TupleExpr | T0.T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | T0.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | T1 | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:9:2341:30 | TupleExpr | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2341:9:2341:30 | TupleExpr | T1.T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:9:2341:30 | TupleExpr | T1.impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:10:2341:22 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:10:2341:22 | S3(...) | | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2341:10:2341:22 | S3(...) | T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:10:2341:22 | S3(...) | impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:13:2341:13 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2341:13:2341:21 | x.clone() | | main.rs:2340:24:2340:31 | T | +| main.rs:2341:25:2341:29 | S3(...) | | main.rs:2285:5:2285:22 | S3 | +| main.rs:2341:25:2341:29 | S3(...) | | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2341:25:2341:29 | S3(...) | T3 | main.rs:2340:24:2340:31 | T | +| main.rs:2341:25:2341:29 | S3(...) | impl(T) | main.rs:2340:24:2340:31 | T | +| main.rs:2341:28:2341:28 | x | | main.rs:2340:24:2340:31 | T | +| main.rs:2344:26:2344:26 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2344:51:2346:5 | { ... } | | main.rs:2344:23:2344:23 | A | +| main.rs:2345:9:2345:9 | t | | main.rs:2344:29:2344:43 | impl ... | +| main.rs:2345:9:2345:17 | t.get_a() | | main.rs:2344:23:2344:23 | A | +| main.rs:2348:16:2362:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2349:13:2349:13 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2349:17:2349:20 | f1(...) | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2350:9:2350:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2350:9:2350:14 | x.f1() | | {EXTERNAL LOCATION} | () | +| main.rs:2351:9:2351:9 | x | | main.rs:2303:16:2303:35 | impl ... + ... | +| main.rs:2351:9:2351:14 | x.f2() | | {EXTERNAL LOCATION} | () | +| main.rs:2352:13:2352:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2352:17:2352:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2353:13:2353:13 | b | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2353:17:2353:33 | uses_my_trait1(...) | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2353:32:2353:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:13:2354:13 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2354:17:2354:32 | get_a_my_trait(...) | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2355:13:2355:13 | c | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2355:17:2355:33 | uses_my_trait2(...) | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2355:32:2355:32 | a | | main.rs:2324:28:2324:43 | impl ... | +| main.rs:2356:13:2356:13 | d | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2356:17:2356:34 | uses_my_trait2(...) | | main.rs:2284:5:2284:14 | S2 | +| main.rs:2356:32:2356:33 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:13:2357:13 | e | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | | main.rs:2332:43:2332:57 | impl ... | +| main.rs:2357:17:2357:35 | get_a_my_trait2(...) | impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:17:2357:43 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2357:33:2357:34 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:13:2360:13 | f | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2360:17:2360:35 | get_a_my_trait3(...) | T.impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:17:2360:44 | ... .unwrap() | | main.rs:2336:50:2336:64 | impl ... | +| main.rs:2360:17:2360:44 | ... .unwrap() | impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:17:2360:52 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2360:33:2360:34 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:13:2361:13 | g | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0 | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T0.impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1 | main.rs:2340:61:2340:75 | impl ... | +| main.rs:2361:17:2361:35 | get_a_my_trait4(...) | T1.impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:37 | ... .0 | | main.rs:2340:44:2340:58 | impl ... | +| main.rs:2361:17:2361:37 | ... .0 | impl(T) | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:17:2361:45 | ... .get_a() | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2361:33:2361:34 | S1 | | main.rs:2282:5:2283:14 | S1 | +| main.rs:2372:16:2372:20 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2372:16:2372:20 | SelfParam | TRef | main.rs:2368:5:2369:13 | S | +| main.rs:2372:31:2374:9 | { ... } | | main.rs:2368:5:2369:13 | S | +| main.rs:2373:13:2373:13 | S | | main.rs:2368:5:2369:13 | S | +| main.rs:2383:26:2385:9 | { ... } | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2383:26:2385:9 | { ... } | T | main.rs:2382:10:2382:10 | T | +| main.rs:2384:13:2384:38 | MyVec {...} | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2384:13:2384:38 | MyVec {...} | T | main.rs:2382:10:2382:10 | T | +| main.rs:2384:27:2384:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2384:27:2384:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2384:27:2384:36 | ...::new(...) | T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:17:2387:25 | SelfParam | | {EXTERNAL LOCATION} | &mut | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2387:17:2387:25 | SelfParam | TRefMut.T | main.rs:2382:10:2382:10 | T | +| main.rs:2387:28:2387:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2387:38:2389:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2388:13:2388:16 | self | | {EXTERNAL LOCATION} | &mut | +| main.rs:2388:13:2388:16 | self | TRefMut | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2388:13:2388:16 | self | TRefMut.T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:13:2388:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2388:13:2388:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2388:13:2388:21 | self.data | T | main.rs:2382:10:2382:10 | T | +| main.rs:2388:13:2388:33 | ... .push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2388:28:2388:32 | value | | main.rs:2382:10:2382:10 | T | +| main.rs:2396:18:2396:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2396:18:2396:22 | SelfParam | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2396:18:2396:22 | SelfParam | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2396:25:2396:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2396:56:2398:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2396:56:2398:9 | { ... } | TRef | main.rs:2392:10:2392:10 | T | +| main.rs:2397:13:2397:29 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2397:13:2397:29 | &... | TRef | main.rs:2392:10:2392:10 | T | +| main.rs:2397:14:2397:17 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2397:14:2397:17 | self | TRef | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2397:14:2397:17 | self | TRef.T | main.rs:2392:10:2392:10 | T | +| main.rs:2397:14:2397:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:2397:14:2397:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:2397:14:2397:22 | self.data | T | main.rs:2392:10:2392:10 | T | +| main.rs:2397:14:2397:29 | ...[index] | | main.rs:2392:10:2392:10 | T | +| main.rs:2397:24:2397:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:2401:22:2401:26 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2401:22:2401:26 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2401:22:2401:26 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2401:35:2403:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2402:13:2402:13 | x | | main.rs:2368:5:2369:13 | S | +| main.rs:2402:17:2402:21 | slice | | {EXTERNAL LOCATION} | & | +| main.rs:2402:17:2402:21 | slice | TRef | {EXTERNAL LOCATION} | [] | +| main.rs:2402:17:2402:21 | slice | TRef.TSlice | main.rs:2368:5:2369:13 | S | +| main.rs:2402:17:2402:24 | slice[0] | | main.rs:2368:5:2369:13 | S | +| main.rs:2402:17:2402:30 | ... .foo() | | main.rs:2368:5:2369:13 | S | +| main.rs:2402:23:2402:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2405:37:2405:37 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2405:43:2405:43 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2409:9:2409:9 | a | | main.rs:2405:20:2405:34 | T | +| main.rs:2409:11:2409:11 | b | | {EXTERNAL LOCATION} | usize | +| main.rs:2412:16:2423:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2413:17:2413:19 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2413:17:2413:19 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2413:23:2413:34 | ...::new(...) | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2413:23:2413:34 | ...::new(...) | T | main.rs:2368:5:2369:13 | S | +| main.rs:2414:9:2414:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2414:9:2414:11 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2414:9:2414:19 | vec.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2414:18:2414:18 | S | | main.rs:2368:5:2369:13 | S | +| main.rs:2415:9:2415:11 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2415:9:2415:11 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2415:9:2415:14 | vec[0] | | main.rs:2368:5:2369:13 | S | +| main.rs:2415:9:2415:20 | ... .foo() | | main.rs:2368:5:2369:13 | S | +| main.rs:2415:13:2415:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2417:13:2417:14 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:13:2417:14 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2417:21:2417:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2417:26:2417:28 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2417:26:2417:28 | [...] | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2417:27:2417:27 | S | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:13:2418:13 | x | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:17:2418:18 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2418:17:2418:18 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2418:17:2418:21 | xs[0] | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:17:2418:27 | ... .foo() | | main.rs:2368:5:2369:13 | S | +| main.rs:2418:20:2418:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2420:29:2420:31 | vec | | main.rs:2377:5:2380:5 | MyVec | +| main.rs:2420:29:2420:31 | vec | T | main.rs:2368:5:2369:13 | S | +| main.rs:2420:34:2420:34 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2422:9:2422:26 | analyze_slice(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2422:23:2422:25 | &xs | | {EXTERNAL LOCATION} | & | +| main.rs:2422:23:2422:25 | &xs | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2422:23:2422:25 | &xs | TRef.TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2422:24:2422:25 | xs | | {EXTERNAL LOCATION} | [;] | +| main.rs:2422:24:2422:25 | xs | TArray | main.rs:2368:5:2369:13 | S | +| main.rs:2427:16:2429:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2428:13:2428:13 | x | | {EXTERNAL LOCATION} | String | +| main.rs:2428:17:2428:46 | MacroExpr | | {EXTERNAL LOCATION} | String | +| main.rs:2428:25:2428:35 | "Hello, {}" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:25:2428:35 | "Hello, {}" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2428:25:2428:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2428:25:2428:45 | ...::must_use(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2428:25:2428:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:2428:38:2428:45 | "World!" | | {EXTERNAL LOCATION} | & | +| main.rs:2428:38:2428:45 | "World!" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2437:19:2437:22 | SelfParam | | main.rs:2433:5:2438:5 | Self [trait MyAdd] | +| main.rs:2437:25:2437:27 | rhs | | main.rs:2433:17:2433:26 | Rhs | +| main.rs:2444:19:2444:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:25:2444:29 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2444:45:2446:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2445:13:2445:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:19:2453:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:25:2453:29 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2453:25:2453:29 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2453:46:2455:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:13:2454:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2454:14:2454:18 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2454:14:2454:18 | value | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:19:2462:22 | SelfParam | | {EXTERNAL LOCATION} | i64 | +| main.rs:2462:25:2462:29 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2462:46:2468:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:13:2467:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:13:2467:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2463:16:2463:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2463:22:2465:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2463:22:2465:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2464:17:2464:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2464:17:2464:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2465:20:2467:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2465:20:2467:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2466:17:2466:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2466:17:2466:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2477:19:2477:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:19:2477:22 | SelfParam | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:25:2477:29 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2477:25:2477:29 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2477:54:2479:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:13:2478:39 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:15:2478:22 | (...) | | main.rs:2473:10:2473:17 | T | +| main.rs:2478:16:2478:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:16:2478:19 | self | T | main.rs:2473:10:2473:17 | T | +| main.rs:2478:16:2478:21 | self.0 | | main.rs:2473:10:2473:17 | T | +| main.rs:2478:31:2478:35 | other | | main.rs:2471:5:2471:19 | S | +| main.rs:2478:31:2478:35 | other | T | main.rs:2473:10:2473:17 | T | +| main.rs:2478:31:2478:37 | other.0 | | main.rs:2473:10:2473:17 | T | +| main.rs:2486:19:2486:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2486:19:2486:22 | SelfParam | T | main.rs:2482:10:2482:17 | T | +| main.rs:2486:25:2486:29 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2486:51:2488:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:13:2487:37 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:15:2487:22 | (...) | | main.rs:2482:10:2482:17 | T | +| main.rs:2487:16:2487:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2487:16:2487:19 | self | T | main.rs:2482:10:2482:17 | T | +| main.rs:2487:16:2487:21 | self.0 | | main.rs:2482:10:2482:17 | T | +| main.rs:2487:31:2487:35 | other | | main.rs:2482:10:2482:17 | T | +| main.rs:2498:19:2498:22 | SelfParam | | main.rs:2471:5:2471:19 | S | +| main.rs:2498:19:2498:22 | SelfParam | T | main.rs:2491:14:2491:14 | T | +| main.rs:2498:25:2498:29 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2498:25:2498:29 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2498:55:2500:9 | { ... } | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:13:2499:37 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:15:2499:22 | (...) | | main.rs:2491:14:2491:14 | T | +| main.rs:2499:16:2499:19 | self | | main.rs:2471:5:2471:19 | S | +| main.rs:2499:16:2499:19 | self | T | main.rs:2491:14:2491:14 | T | +| main.rs:2499:16:2499:21 | self.0 | | main.rs:2491:14:2491:14 | T | +| main.rs:2499:31:2499:35 | other | | {EXTERNAL LOCATION} | & | +| main.rs:2499:31:2499:35 | other | TRef | main.rs:2491:14:2491:14 | T | +| main.rs:2505:20:2505:24 | value | | main.rs:2503:18:2503:18 | T | +| main.rs:2510:20:2510:24 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2510:40:2512:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2511:13:2511:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2517:20:2517:24 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2517:41:2523:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:13:2522:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2518:13:2522:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:2518:16:2518:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2518:22:2520:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2518:22:2520:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2519:17:2519:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2519:17:2519:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2520:20:2522:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2520:20:2522:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2521:17:2521:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2521:17:2521:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2528:21:2528:25 | value | | main.rs:2526:19:2526:19 | T | +| main.rs:2528:31:2528:31 | x | | main.rs:2526:5:2529:5 | Self [trait MyFrom2] | +| main.rs:2533:21:2533:25 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:33:2533:33 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2533:48:2535:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2534:13:2534:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:21:2540:25 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2540:34:2540:34 | _ | | {EXTERNAL LOCATION} | i64 | +| main.rs:2540:49:2546:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2541:13:2545:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:2541:16:2541:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:2541:22:2543:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2542:17:2542:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2543:20:2545:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2544:17:2544:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2551:15:2551:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2554:15:2554:15 | x | | main.rs:2549:5:2555:5 | Self [trait MySelfTrait] | +| main.rs:2559:15:2559:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2559:31:2561:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:13:2560:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2560:17:2560:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2564:15:2564:15 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2564:32:2566:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:13:2565:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:13:2565:17 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:2565:17:2565:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2571:15:2571:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2571:31:2573:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2572:13:2572:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2572:13:2572:13 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2576:15:2576:15 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2576:32:2578:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2577:13:2577:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:2581:16:2606:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2582:13:2582:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2582:22:2582:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2582:22:2582:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:9:2583:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2583:18:2583:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:9:2584:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:18:2584:22 | &5i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2584:18:2584:22 | &5i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2584:19:2584:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:9:2585:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2585:18:2585:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2587:9:2587:15 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2587:9:2587:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:9:2587:31 | ... .my_add(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2587:11:2587:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:24:2587:30 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2587:24:2587:30 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2587:26:2587:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:9:2588:15 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2588:9:2588:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:11:2588:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2588:24:2588:27 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:9:2589:15 | S(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2589:9:2589:15 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:9:2589:29 | ... .my_add(...) | | main.rs:2471:5:2471:19 | S | +| main.rs:2589:11:2589:14 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:24:2589:28 | &3i64 | | {EXTERNAL LOCATION} | & | +| main.rs:2589:24:2589:28 | &3i64 | TRef | {EXTERNAL LOCATION} | i64 | +| main.rs:2589:25:2589:28 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:13:2591:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:17:2591:35 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2591:30:2591:34 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:13:2592:13 | y | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:17:2592:34 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2592:30:2592:33 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2593:13:2593:13 | z | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:22:2593:43 | ...::my_from(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2593:38:2593:42 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:9:2594:34 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2594:23:2594:27 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2594:30:2594:33 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2595:9:2595:33 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2595:23:2595:26 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2595:29:2595:32 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:9:2596:38 | ...::my_from2(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2596:27:2596:31 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2596:34:2596:37 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:9:2598:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2598:17:2598:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:9:2599:22 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2599:17:2599:21 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:9:2600:22 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2600:18:2600:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:9:2601:22 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2601:18:2601:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2602:9:2602:30 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2602:25:2602:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:9:2603:30 | ...::f2(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2603:25:2603:29 | 73i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:9:2604:29 | ...::f1(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2604:25:2604:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2605:9:2605:29 | ...::f2(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2605:25:2605:28 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2613:26:2615:9 | { ... } | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2614:13:2614:25 | MyCallable {...} | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:17:2617:21 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2617:17:2617:21 | SelfParam | TRef | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2617:31:2619:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:2618:13:2618:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2618:13:2618:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2622:16:2729:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:9:2625:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2625:13:2625:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:18:2625:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2625:18:2625:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:19:2625:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:22:2625:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:25:2625:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2625:28:2625:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:9:2626:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2626:18:2626:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:18:2626:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:18:2626:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | +| main.rs:2626:19:2626:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:22:2626:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:25:2626:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:32:2626:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn FnOnce | +| main.rs:2626:32:2626:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:2626:40:2626:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2626:43:2626:44 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:9:2627:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2627:13:2627:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:18:2627:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2627:18:2627:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:18:2627:38 | ... .into_iter() | | {EXTERNAL LOCATION} | IntoIter | +| main.rs:2627:18:2627:38 | ... .into_iter() | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:19:2627:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:22:2627:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:25:2627:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2627:40:2627:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2629:13:2629:17 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:13:2629:17 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:13:2629:17 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:21:2629:31 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2629:21:2629:31 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:21:2629:31 | [...] | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:22:2629:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:27:2629:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:27:2629:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2629:30:2629:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2629:30:2629:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:9:2630:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2630:13:2630:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2630:13:2630:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:18:2630:22 | vals1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2630:18:2630:22 | vals1 | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2630:18:2630:22 | vals1 | TArray | {EXTERNAL LOCATION} | u8 | +| main.rs:2630:24:2630:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2632:13:2632:17 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:13:2632:17 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2632:21:2632:29 | [1u16; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2632:21:2632:29 | [1u16; 3] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2632:22:2632:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2632:28:2632:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2633:9:2633:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2633:13:2633:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2633:18:2633:22 | vals2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2633:18:2633:22 | vals2 | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2633:24:2633:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2635:13:2635:17 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:13:2635:17 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:26:2635:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:31:2635:39 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2635:31:2635:39 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:31:2635:39 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:32:2635:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:32:2635:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:35:2635:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:35:2635:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2635:38:2635:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2635:38:2635:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:9:2636:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2636:13:2636:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:18:2636:22 | vals3 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2636:18:2636:22 | vals3 | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2636:24:2636:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2638:13:2638:17 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2638:13:2638:17 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:26:2638:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2638:31:2638:36 | [1; 3] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2638:31:2638:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2638:31:2638:36 | [1; 3] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:32:2638:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2638:32:2638:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2638:35:2638:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2639:9:2639:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2639:13:2639:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:2639:18:2639:22 | vals4 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2639:18:2639:22 | vals4 | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2639:24:2639:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2641:17:2641:24 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:17:2641:24 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2641:17:2641:24 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:28:2641:48 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2641:28:2641:48 | [...] | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2641:28:2641:48 | [...] | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:29:2641:33 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:29:2641:33 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:36:2641:40 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:36:2641:40 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2641:43:2641:47 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2641:43:2641:47 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:9:2642:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2642:13:2642:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2642:13:2642:13 | s | TRef | {EXTERNAL LOCATION} | & | +| main.rs:2642:13:2642:13 | s | TRef.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:18:2642:26 | &strings1 | | {EXTERNAL LOCATION} | & | +| main.rs:2642:18:2642:26 | &strings1 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2642:18:2642:26 | &strings1 | TRef.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2642:18:2642:26 | &strings1 | TRef.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:19:2642:26 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2642:19:2642:26 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2642:19:2642:26 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2642:28:2642:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:9:2643:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2643:13:2643:13 | s | | {EXTERNAL LOCATION} | &mut | +| main.rs:2643:13:2643:13 | s | TRefMut | {EXTERNAL LOCATION} | & | +| main.rs:2643:13:2643:13 | s | TRefMut.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:18:2643:30 | &mut strings1 | | {EXTERNAL LOCATION} | &mut | +| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut.TArray | {EXTERNAL LOCATION} | & | +| main.rs:2643:18:2643:30 | &mut strings1 | TRefMut.TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:23:2643:30 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2643:23:2643:30 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2643:23:2643:30 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2643:32:2643:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:9:2644:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2644:13:2644:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2644:13:2644:13 | s | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2644:18:2644:25 | strings1 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2644:18:2644:25 | strings1 | TArray | {EXTERNAL LOCATION} | & | +| main.rs:2644:18:2644:25 | strings1 | TArray.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2644:27:2644:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2646:13:2646:20 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2646:13:2646:20 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2647:9:2651:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2647:9:2651:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2648:13:2648:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2648:26:2648:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2648:26:2648:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2649:13:2649:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2649:26:2649:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2649:26:2649:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2650:13:2650:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2650:26:2650:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2650:26:2650:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2652:9:2652:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2652:13:2652:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:2652:18:2652:25 | strings2 | | {EXTERNAL LOCATION} | [;] | +| main.rs:2652:18:2652:25 | strings2 | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2652:27:2652:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2654:13:2654:20 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2654:13:2654:20 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2654:13:2654:20 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2655:9:2659:9 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2655:9:2659:9 | &... | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2655:9:2659:9 | &... | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2655:10:2659:9 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2655:10:2659:9 | [...] | TArray | {EXTERNAL LOCATION} | String | +| main.rs:2656:13:2656:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2656:26:2656:30 | "foo" | | {EXTERNAL LOCATION} | & | +| main.rs:2656:26:2656:30 | "foo" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2657:13:2657:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2657:26:2657:30 | "bar" | | {EXTERNAL LOCATION} | & | +| main.rs:2657:26:2657:30 | "bar" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2658:13:2658:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:2658:26:2658:30 | "baz" | | {EXTERNAL LOCATION} | & | +| main.rs:2658:26:2658:30 | "baz" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2660:9:2660:28 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2660:13:2660:13 | s | | {EXTERNAL LOCATION} | & | +| main.rs:2660:13:2660:13 | s | TRef | {EXTERNAL LOCATION} | String | +| main.rs:2660:18:2660:25 | strings3 | | {EXTERNAL LOCATION} | & | +| main.rs:2660:18:2660:25 | strings3 | TRef | {EXTERNAL LOCATION} | [;] | +| main.rs:2660:18:2660:25 | strings3 | TRef.TArray | {EXTERNAL LOCATION} | String | +| main.rs:2660:27:2660:28 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2662:13:2662:21 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:13:2662:21 | callables | TArray | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:25:2662:81 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2662:25:2662:81 | [...] | TArray | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:26:2662:42 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:45:2662:61 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2662:64:2662:80 | ...::new(...) | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2663:9:2667:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2663:13:2663:13 | c | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2664:12:2664:20 | callables | | {EXTERNAL LOCATION} | [;] | +| main.rs:2664:12:2664:20 | callables | TArray | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2665:9:2667:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2666:17:2666:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:2666:26:2666:26 | c | | main.rs:2610:5:2610:24 | MyCallable | +| main.rs:2666:26:2666:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2671:9:2671:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2671:13:2671:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:18:2671:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:18:2671:22 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2671:18:2671:22 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:21:2671:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2671:24:2671:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:9:2672:29 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2672:13:2672:13 | u | | {EXTERNAL LOCATION} | Range | +| main.rs:2672:13:2672:13 | u | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:13:2672:13 | u | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:18:2672:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2672:18:2672:26 | [...] | TArray | {EXTERNAL LOCATION} | Range | +| main.rs:2672:18:2672:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:18:2672:26 | [...] | TArray.Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:19:2672:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:19:2672:25 | 0u8..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2672:19:2672:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:19:2672:25 | 0u8..10 | Idx | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:24:2672:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2672:24:2672:25 | 10 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2672:28:2672:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2673:13:2673:17 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2673:13:2673:17 | range | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:21:2673:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:21:2673:25 | 0..10 | | {EXTERNAL LOCATION} | Range | +| main.rs:2673:21:2673:25 | 0..10 | Idx | {EXTERNAL LOCATION} | i32 | +| main.rs:2673:24:2673:25 | 10 | | {EXTERNAL LOCATION} | i32 | | main.rs:2674:9:2674:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2674:18:2674:22 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2674:13:2674:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:2674:18:2674:22 | range | | {EXTERNAL LOCATION} | Range | +| main.rs:2674:18:2674:22 | range | Idx | {EXTERNAL LOCATION} | i32 | | main.rs:2674:24:2674:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2676:13:2676:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:13:2676:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:13:2676:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:32:2676:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2676:32:2676:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2676:32:2676:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:32:2676:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2676:32:2676:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2676:32:2676:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:33:2676:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2676:39:2676:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2676:42:2676:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2677:9:2677:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2677:13:2677:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:18:2677:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:2677:18:2677:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:2677:18:2677:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:2677:25:2677:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2679:22:2679:33 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2679:22:2679:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2679:22:2679:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | -| main.rs:2679:23:2679:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:2679:29:2679:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2679:32:2679:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2680:9:2680:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2680:25:2680:26 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2682:13:2682:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:13:2682:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2682:13:2682:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:13:2682:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:21:2682:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2682:21:2682:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2682:21:2682:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:21:2682:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:31:2682:42 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2682:31:2682:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:31:2682:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:32:2682:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:2682:38:2682:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2682:41:2682:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:9:2683:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:2683:18:2683:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2683:18:2683:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2683:18:2683:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2683:18:2683:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | -| main.rs:2683:24:2683:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2685:13:2685:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:13:2685:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:13:2685:17 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:13:2685:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:32:2685:43 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2685:32:2685:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2685:32:2685:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:32:2685:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:2685:32:2685:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:2685:32:2685:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | -| main.rs:2685:32:2685:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:33:2685:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:2685:39:2685:39 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2685:42:2685:42 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2686:9:2686:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2686:13:2686:13 | u | | {EXTERNAL LOCATION} | & | -| main.rs:2686:13:2686:13 | u | TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:18:2686:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2686:18:2686:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2686:18:2686:22 | vals6 | T | {EXTERNAL LOCATION} | & | -| main.rs:2686:18:2686:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | -| main.rs:2686:24:2686:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2688:17:2688:21 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:17:2688:21 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:17:2688:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2688:25:2688:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2688:25:2688:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2688:25:2688:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:9:2689:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2689:9:2689:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2689:9:2689:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2689:9:2689:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2689:20:2689:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:9:2690:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2690:13:2690:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:18:2690:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2690:18:2690:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2690:18:2690:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:2690:24:2690:25 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2692:13:2692:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:23:2692:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:28:2692:37 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:28:2692:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:33:2692:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:36:2692:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:40:2692:49 | (...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:40:2692:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | -| main.rs:2692:45:2692:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2692:48:2692:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2694:13:2694:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2694:17:2697:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2694:28:2694:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | -| main.rs:2694:36:2697:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:13:2696:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2695:29:2696:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2699:17:2699:20 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:17:2699:20 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:17:2699:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:17:2699:20 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2699:17:2699:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:17:2699:20 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2699:17:2699:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2699:24:2699:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2699:24:2699:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2699:24:2699:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2699:24:2699:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | -| main.rs:2699:24:2699:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2699:24:2699:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2699:24:2699:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:9:2700:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2700:9:2700:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2700:9:2700:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2700:9:2700:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2700:9:2700:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:9:2700:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2700:9:2700:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:9:2700:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2700:9:2700:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2700:9:2700:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:9:2700:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2700:9:2700:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:21:2700:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2700:24:2700:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2700:24:2700:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2700:24:2700:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2700:24:2700:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2700:33:2700:37 | "one" | | {EXTERNAL LOCATION} | & | -| main.rs:2700:33:2700:37 | "one" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2701:9:2701:12 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:9:2701:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2701:9:2701:12 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2701:9:2701:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:9:2701:12 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2701:9:2701:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:9:2701:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2701:9:2701:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2701:9:2701:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:9:2701:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | -| main.rs:2701:9:2701:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:21:2701:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2701:24:2701:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2701:24:2701:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2701:24:2701:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | -| main.rs:2701:24:2701:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2701:33:2701:37 | "two" | | {EXTERNAL LOCATION} | & | -| main.rs:2701:33:2701:37 | "two" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:9:2702:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2702:13:2702:15 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2702:13:2702:15 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:20:2702:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2702:20:2702:23 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:20:2702:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2702:20:2702:23 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2702:20:2702:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:20:2702:23 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:20:2702:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:20:2702:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:2702:20:2702:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2702:20:2702:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2702:20:2702:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2702:20:2702:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2702:20:2702:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2702:32:2702:33 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:9:2703:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2703:13:2703:17 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:17 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2703:13:2703:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:13:2703:17 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:13:2703:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:22:2703:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2703:22:2703:25 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:22:2703:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2703:22:2703:25 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2703:22:2703:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:22:2703:25 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:22:2703:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:22:2703:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:2703:22:2703:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2703:22:2703:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2703:22:2703:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2703:22:2703:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2703:22:2703:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2703:36:2703:37 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:9:2704:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2704:13:2704:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2704:13:2704:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2704:13:2704:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:13:2704:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:13:2704:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:14:2704:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2704:14:2704:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:19:2704:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2704:19:2704:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2704:19:2704:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:19:2704:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:19:2704:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:29:2704:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2704:29:2704:32 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:29:2704:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2704:29:2704:32 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2704:29:2704:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:29:2704:32 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:29:2704:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:29:2704:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:2704:29:2704:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2704:29:2704:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | -| main.rs:2704:29:2704:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2704:29:2704:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2704:29:2704:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2704:41:2704:42 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:9:2705:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2705:13:2705:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2705:13:2705:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | -| main.rs:2705:13:2705:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:13:2705:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:13:2705:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:14:2705:16 | key | | {EXTERNAL LOCATION} | & | -| main.rs:2705:14:2705:16 | key | TRef | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:19:2705:23 | value | | {EXTERNAL LOCATION} | & | -| main.rs:2705:19:2705:23 | value | TRef | {EXTERNAL LOCATION} | Box | -| main.rs:2705:19:2705:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:19:2705:23 | value | TRef.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:19:2705:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:29:2705:33 | &map1 | | {EXTERNAL LOCATION} | & | -| main.rs:2705:29:2705:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | -| main.rs:2705:29:2705:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:29:2705:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2705:29:2705:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | -| main.rs:2705:29:2705:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:29:2705:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:29:2705:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:30:2705:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:2705:30:2705:33 | map1 | K | {EXTERNAL LOCATION} | i32 | -| main.rs:2705:30:2705:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:2705:30:2705:33 | map1 | V | {EXTERNAL LOCATION} | Box | -| main.rs:2705:30:2705:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | -| main.rs:2705:30:2705:33 | map1 | V.T | {EXTERNAL LOCATION} | & | -| main.rs:2705:30:2705:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | -| main.rs:2705:35:2705:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2709:17:2709:17 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2709:26:2709:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2709:26:2709:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:13:2711:13 | _ | | {EXTERNAL LOCATION} | () | -| main.rs:2711:17:2714:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2711:23:2711:23 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2711:23:2711:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:2711:27:2711:28 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2712:9:2714:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2713:13:2713:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2713:13:2713:18 | ... += ... | | {EXTERNAL LOCATION} | () | -| main.rs:2713:18:2713:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2725:40:2727:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:2725:40:2727:9 | { ... } | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2725:40:2727:9 | { ... } | T.T | main.rs:2724:10:2724:19 | T | -| main.rs:2726:13:2726:16 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2726:13:2726:16 | None | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2726:13:2726:16 | None | T.T | main.rs:2724:10:2724:19 | T | -| main.rs:2729:30:2731:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2729:30:2731:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2730:13:2730:28 | S1(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2730:13:2730:28 | S1(...) | T | main.rs:2724:10:2724:19 | T | -| main.rs:2730:16:2730:27 | ...::default(...) | | main.rs:2724:10:2724:19 | T | -| main.rs:2733:19:2733:22 | SelfParam | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:19:2733:22 | SelfParam | T | main.rs:2724:10:2724:19 | T | -| main.rs:2733:33:2735:9 | { ... } | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2733:33:2735:9 | { ... } | T | main.rs:2724:10:2724:19 | T | -| main.rs:2734:13:2734:16 | self | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2734:13:2734:16 | self | T | main.rs:2724:10:2724:19 | T | -| main.rs:2746:15:2746:15 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2746:26:2748:5 | { ... } | | main.rs:2746:12:2746:12 | T | -| main.rs:2747:9:2747:9 | x | | main.rs:2746:12:2746:12 | T | -| main.rs:2750:16:2772:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2751:13:2751:14 | x1 | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:13:2751:14 | x1 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2751:13:2751:14 | x1 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2751:34:2751:48 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2752:13:2752:14 | x2 | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:13:2752:14 | x2 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:13:2752:14 | x2 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2752:18:2752:38 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:13:2753:14 | x3 | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:13:2753:14 | x3 | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:13:2753:14 | x3 | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T | main.rs:2719:5:2719:20 | S1 | -| main.rs:2753:18:2753:32 | ...::assoc_fun(...) | T.T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:13:2754:14 | x4 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:13:2754:14 | x4 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:18:2754:48 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:18:2754:48 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2754:35:2754:47 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2754:35:2754:47 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:13:2755:14 | x5 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:13:2755:14 | x5 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:18:2755:42 | ...::method(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:18:2755:42 | ...::method(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2755:29:2755:41 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2755:29:2755:41 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2756:13:2756:14 | x6 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2756:13:2756:14 | x6 | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2756:18:2756:45 | S4::<...>(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2756:18:2756:45 | S4::<...>(...) | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2756:27:2756:44 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2757:13:2757:14 | x7 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2757:13:2757:14 | x7 | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2757:18:2757:23 | S4(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2757:18:2757:23 | S4(...) | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2757:21:2757:22 | S2 | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2758:13:2758:14 | x8 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2758:13:2758:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:18:2758:22 | S4(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2758:18:2758:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | -| main.rs:2758:21:2758:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2759:13:2759:14 | x9 | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2759:13:2759:14 | x9 | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2759:18:2759:34 | S4(...) | | main.rs:2740:5:2740:27 | S4 | -| main.rs:2759:18:2759:34 | S4(...) | T4 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2759:21:2759:33 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:13:2760:15 | x10 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:13:2760:15 | x10 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2760:19:2763:9 | S5::<...> {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2762:20:2762:37 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:13:2764:15 | x11 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2764:13:2764:15 | x11 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:19:2764:34 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2764:19:2764:34 | S5 {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2764:31:2764:32 | S2 | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2765:13:2765:15 | x12 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:13:2765:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2765:19:2765:33 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2765:19:2765:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | -| main.rs:2765:31:2765:31 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2766:13:2766:15 | x13 | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:13:2766:15 | x13 | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2766:19:2769:9 | S5 {...} | | main.rs:2742:5:2744:5 | S5 | -| main.rs:2766:19:2769:9 | S5 {...} | T5 | main.rs:2721:5:2722:14 | S2 | -| main.rs:2768:20:2768:32 | ...::default(...) | | main.rs:2721:5:2722:14 | S2 | -| main.rs:2770:13:2770:15 | x14 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:19:2770:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2770:30:2770:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:2771:13:2771:15 | x15 | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:13:2771:15 | x15 | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2771:19:2771:37 | ...::default(...) | | main.rs:2719:5:2719:20 | S1 | -| main.rs:2771:19:2771:37 | ...::default(...) | T | main.rs:2721:5:2722:14 | S2 | -| main.rs:2780:35:2782:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2780:35:2782:9 | { ... } | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2780:35:2782:9 | { ... } | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:13:2781:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2781:13:2781:26 | TupleExpr | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:13:2781:26 | TupleExpr | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:14:2781:18 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2781:21:2781:25 | S1 {...} | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:16:2783:19 | SelfParam | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2783:22:2783:23 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2786:16:2820:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2787:13:2787:13 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:13:2787:13 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:13:2787:13 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2787:17:2787:30 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:17:2788:17 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:17:2788:17 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2788:21:2788:34 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:13:2789:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:13:2789:18 | TuplePat | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:13:2789:18 | TuplePat | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:14:2789:14 | c | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:17:2789:17 | d | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2789:22:2789:35 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:13:2790:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:13:2790:22 | TuplePat | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:13:2790:22 | TuplePat | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:18:2790:18 | e | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:21:2790:21 | f | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2790:26:2790:39 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:13:2791:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:13:2791:26 | TuplePat | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:13:2791:26 | TuplePat | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:18:2791:18 | g | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:25:2791:25 | h | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2791:30:2791:43 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2793:9:2793:9 | a | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:9 | a | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:11 | a.0 | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2793:9:2793:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2794:9:2794:9 | b | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2794:9:2794:9 | b | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:9 | b | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:11 | b.1 | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2794:9:2794:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2795:9:2795:9 | c | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2795:9:2795:15 | c.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2796:9:2796:9 | d | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2796:9:2796:15 | d.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2797:9:2797:9 | e | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2797:9:2797:15 | e.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2798:9:2798:9 | f | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2798:9:2798:15 | f.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2799:9:2799:9 | g | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2799:9:2799:15 | g.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2800:9:2800:9 | h | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2800:9:2800:15 | h.foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2805:13:2805:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2805:17:2805:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:2806:13:2806:13 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2806:17:2806:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:2807:13:2807:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:13:2807:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:13:2807:16 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2807:20:2807:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2807:20:2807:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:20:2807:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2807:21:2807:21 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:2807:24:2807:24 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2808:13:2808:13 | i | | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:22:2808:25 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2808:22:2808:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2808:22:2808:25 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2808:22:2808:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:2809:13:2809:13 | j | | {EXTERNAL LOCATION} | bool | -| main.rs:2809:23:2809:26 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2809:23:2809:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | -| main.rs:2809:23:2809:26 | pair | T1 | {EXTERNAL LOCATION} | bool | -| main.rs:2809:23:2809:28 | pair.1 | | {EXTERNAL LOCATION} | bool | -| main.rs:2811:13:2811:16 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:13:2811:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:13:2811:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:20:2811:25 | [...] | | {EXTERNAL LOCATION} | [;] | -| main.rs:2811:20:2811:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:20:2811:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2811:20:2811:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:20:2811:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:21:2811:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2811:24:2811:24 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:9:2815:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2812:15:2812:18 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2812:15:2812:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2812:15:2812:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:13:2813:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2813:13:2813:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:13:2813:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:14:2813:14 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:17:2813:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2813:23:2813:42 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2813:30:2813:41 | "unexpected" | | {EXTERNAL LOCATION} | & | -| main.rs:2813:30:2813:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2813:30:2813:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2813:30:2813:41 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2814:13:2814:13 | _ | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2814:13:2814:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2814:13:2814:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2814:18:2814:35 | MacroExpr | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | "expected" | | {EXTERNAL LOCATION} | & | -| main.rs:2814:25:2814:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2814:25:2814:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2814:25:2814:34 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2816:13:2816:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2816:17:2816:20 | pair | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2816:17:2816:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | -| main.rs:2816:17:2816:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:2816:17:2816:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2818:13:2818:13 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2818:13:2818:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:13:2818:13 | y | TRef.T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:13:2818:13 | y | TRef.T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:17:2818:31 | &... | | {EXTERNAL LOCATION} | & | -| main.rs:2818:17:2818:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:17:2818:31 | &... | TRef.T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:17:2818:31 | &... | TRef.T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2818:18:2818:31 | ...::get_pair(...) | T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:9 | y | | {EXTERNAL LOCATION} | & | -| main.rs:2819:9:2819:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | -| main.rs:2819:9:2819:9 | y | TRef.T0 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:9 | y | TRef.T1 | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:11 | y.0 | | main.rs:2776:5:2777:16 | S1 | -| main.rs:2819:9:2819:17 | ... .foo() | | {EXTERNAL LOCATION} | () | -| main.rs:2825:27:2847:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2826:13:2826:23 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:13:2826:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:13:2826:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2826:27:2826:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2826:27:2826:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2826:27:2826:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2826:36:2826:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2829:9:2837:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2829:15:2829:25 | boxed_value | | {EXTERNAL LOCATION} | Box | -| main.rs:2829:15:2829:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | -| main.rs:2829:15:2829:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:13:2830:19 | box 100 | | {EXTERNAL LOCATION} | Box | -| main.rs:2830:13:2830:19 | box 100 | A | {EXTERNAL LOCATION} | Global | -| main.rs:2830:13:2830:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:17:2830:19 | 100 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2830:24:2832:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2831:26:2831:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2831:26:2831:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2831:26:2831:36 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2833:13:2833:17 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2833:13:2833:17 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2833:13:2833:17 | box ... | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2833:22:2836:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2835:26:2835:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2835:26:2835:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2835:26:2835:51 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2840:13:2840:22 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:22 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:13:2840:22 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2840:13:2840:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:13:2840:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:26:2840:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:26:2840:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:26:2840:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | -| main.rs:2840:26:2840:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:26:2840:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:35:2840:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2840:35:2840:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2840:35:2840:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2840:44:2840:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2841:9:2846:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2841:15:2841:24 | nested_box | | {EXTERNAL LOCATION} | Box | -| main.rs:2841:15:2841:24 | nested_box | A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:15:2841:24 | nested_box | T | {EXTERNAL LOCATION} | Box | -| main.rs:2841:15:2841:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2841:15:2841:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2842:13:2842:21 | box ... | | {EXTERNAL LOCATION} | Box | -| main.rs:2842:13:2842:21 | box ... | A | {EXTERNAL LOCATION} | Global | -| main.rs:2842:13:2842:21 | box ... | T | {EXTERNAL LOCATION} | Box | -| main.rs:2842:13:2842:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | -| main.rs:2842:13:2842:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2842:26:2845:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2844:26:2844:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2844:26:2844:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2844:26:2844:59 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2856:36:2858:9 | { ... } | | main.rs:2853:5:2853:22 | Path | -| main.rs:2857:13:2857:19 | Path {...} | | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:29:2860:33 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2860:29:2860:33 | SelfParam | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2860:59:2862:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:2860:59:2862:9 | { ... } | E | {EXTERNAL LOCATION} | () | -| main.rs:2860:59:2862:9 | { ... } | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2861:13:2861:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2861:13:2861:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | -| main.rs:2861:13:2861:30 | Ok(...) | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2861:16:2861:29 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2868:39:2870:9 | { ... } | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2869:13:2869:22 | PathBuf {...} | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:18:2878:22 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2878:18:2878:22 | SelfParam | TRef | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2878:34:2882:9 | { ... } | | {EXTERNAL LOCATION} | & | -| main.rs:2878:34:2882:9 | { ... } | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2880:33:2880:43 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2881:13:2881:17 | &path | | {EXTERNAL LOCATION} | & | -| main.rs:2881:13:2881:17 | &path | TRef | main.rs:2853:5:2853:22 | Path | -| main.rs:2881:14:2881:17 | path | | main.rs:2853:5:2853:22 | Path | -| main.rs:2885:16:2893:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2886:13:2886:17 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2886:21:2886:31 | ...::new(...) | | main.rs:2853:5:2853:22 | Path | -| main.rs:2887:13:2887:17 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2887:13:2887:17 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2887:13:2887:17 | path2 | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2887:21:2887:25 | path1 | | main.rs:2853:5:2853:22 | Path | -| main.rs:2887:21:2887:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | -| main.rs:2887:21:2887:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | -| main.rs:2887:21:2887:40 | path1.canonicalize() | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2888:13:2888:17 | path3 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2888:21:2888:25 | path2 | | {EXTERNAL LOCATION} | Result | -| main.rs:2888:21:2888:25 | path2 | E | {EXTERNAL LOCATION} | () | -| main.rs:2888:21:2888:25 | path2 | T | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2888:21:2888:34 | path2.unwrap() | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2890:13:2890:20 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2890:24:2890:37 | ...::new(...) | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2891:24:2891:31 | pathbuf1 | | main.rs:2865:5:2865:25 | PathBuf | -| main.rs:2898:14:2898:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2898:14:2898:18 | SelfParam | TRef | main.rs:2897:5:2899:5 | Self [trait MyTrait] | -| main.rs:2905:14:2905:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2905:14:2905:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2905:14:2905:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2905:28:2907:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2906:13:2906:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2906:13:2906:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2906:13:2906:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2906:13:2906:18 | self.0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:14:2911:18 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2911:14:2911:18 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2911:14:2911:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2911:28:2913:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:16 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2912:13:2912:16 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:18 | self.0 | | main.rs:2901:5:2902:19 | S | -| main.rs:2912:13:2912:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2912:13:2912:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2917:15:2917:19 | SelfParam | | {EXTERNAL LOCATION} | & | -| main.rs:2917:15:2917:19 | SelfParam | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2917:15:2917:19 | SelfParam | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2917:33:2919:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2917:33:2919:9 | { ... } | T.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:13:2918:24 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2918:13:2918:24 | S(...) | T | main.rs:2901:5:2902:19 | S | -| main.rs:2918:13:2918:24 | S(...) | T.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:15:2918:23 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2918:15:2918:23 | S(...) | T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:17:2918:20 | self | | {EXTERNAL LOCATION} | & | -| main.rs:2918:17:2918:20 | self | TRef | main.rs:2901:5:2902:19 | S | -| main.rs:2918:17:2918:20 | self | TRef.T | main.rs:2916:10:2916:16 | T | -| main.rs:2918:17:2918:22 | self.0 | | main.rs:2916:10:2916:16 | T | -| main.rs:2922:14:2922:14 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2922:48:2939:5 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2922:48:2939:5 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2922:48:2939:5 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2922:48:2939:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:13:2923:13 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2923:13:2923:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:17:2928:9 | if b {...} else {...} | | main.rs:2901:5:2902:19 | S | -| main.rs:2923:17:2928:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2923:20:2923:20 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2923:22:2926:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2923:22:2926:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2924:17:2924:17 | y | | main.rs:2901:5:2902:19 | S | -| main.rs:2924:17:2924:17 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2924:21:2924:38 | ...::default(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2924:21:2924:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2925:13:2925:13 | y | | main.rs:2901:5:2902:19 | S | -| main.rs:2925:13:2925:13 | y | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2926:16:2928:9 | { ... } | | main.rs:2901:5:2902:19 | S | -| main.rs:2926:16:2928:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2927:13:2927:16 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2927:13:2927:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2927:15:2927:15 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:13:2932:13 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2932:13:2932:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:17:2932:20 | S(...) | | main.rs:2901:5:2902:19 | S | -| main.rs:2932:17:2932:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2932:19:2932:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:9:2938:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | -| main.rs:2933:9:2938:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:9:2938:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:12:2933:12 | b | | {EXTERNAL LOCATION} | bool | -| main.rs:2933:14:2936:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2933:14:2936:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2933:14:2936:9 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2933:14:2936:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:14:2936:9 | { ... } | T.T | main.rs:2901:5:2902:19 | S | -| main.rs:2933:14:2936:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2933:14:2936:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:17:2934:17 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2934:17:2934:17 | x | T | main.rs:2901:5:2902:19 | S | -| main.rs:2934:17:2934:17 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:21:2934:21 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2934:21:2934:21 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2934:21:2934:26 | x.m2() | | main.rs:2901:5:2902:19 | S | -| main.rs:2934:21:2934:26 | x.m2() | T | main.rs:2901:5:2902:19 | S | -| main.rs:2934:21:2934:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:13:2935:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2935:13:2935:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2935:13:2935:23 | ...::new(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2935:13:2935:23 | ...::new(...) | T | main.rs:2901:5:2902:19 | S | -| main.rs:2935:13:2935:23 | ...::new(...) | T.T | main.rs:2901:5:2902:19 | S | -| main.rs:2935:13:2935:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:13:2935:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2935:22:2935:22 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2935:22:2935:22 | x | T | main.rs:2901:5:2902:19 | S | -| main.rs:2935:22:2935:22 | x | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:16:2938:9 | { ... } | | {EXTERNAL LOCATION} | Box | -| main.rs:2936:16:2938:9 | { ... } | A | {EXTERNAL LOCATION} | Global | -| main.rs:2936:16:2938:9 | { ... } | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2936:16:2938:9 | { ... } | T | main.rs:2901:5:2902:19 | S | -| main.rs:2936:16:2938:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2936:16:2938:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:13:2937:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2937:13:2937:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2937:13:2937:23 | ...::new(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:2937:13:2937:23 | ...::new(...) | T | main.rs:2901:5:2902:19 | S | -| main.rs:2937:13:2937:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:13:2937:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2937:22:2937:22 | x | | main.rs:2901:5:2902:19 | S | -| main.rs:2937:22:2937:22 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2943:22:2947:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2944:18:2944:18 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2944:33:2946:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:13:2945:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:13:2945:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:2945:17:2945:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2952:11:2952:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2952:30:2960:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2954:13:2954:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2954:17:2958:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2955:13:2957:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2955:16:2955:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2955:21:2957:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2956:24:2956:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2959:9:2959:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2963:20:2970:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2966:26:2966:27 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2968:18:2968:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2968:18:2968:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2968:18:2968:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2969:9:2969:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2972:20:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2973:16:2973:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2977:11:2977:14 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2977:30:2985:5 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:2978:13:2978:13 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2978:17:2982:9 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2979:13:2981:13 | if cond {...} | | {EXTERNAL LOCATION} | () | -| main.rs:2979:16:2979:19 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:2979:21:2981:13 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2980:24:2980:25 | 12 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | -| main.rs:2983:18:2983:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | -| main.rs:2983:18:2983:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2983:18:2983:29 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2983:29:2983:29 | a | | {EXTERNAL LOCATION} | () | -| main.rs:2984:9:2984:9 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:2989:16:3036:5 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2990:13:2990:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2990:13:2990:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2990:17:2990:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2990:17:2990:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:13:2991:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:13:2991:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2991:30:2991:30 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2991:30:2991:30 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:13:2992:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2992:13:2992:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2992:17:2992:35 | ...::None | | {EXTERNAL LOCATION} | Option | -| main.rs:2992:17:2992:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2993:13:2993:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2993:13:2993:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2993:17:2993:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | -| main.rs:2993:17:2993:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2995:26:2995:28 | opt | | {EXTERNAL LOCATION} | Option | -| main.rs:2995:26:2995:28 | opt | T | main.rs:2995:23:2995:23 | T | -| main.rs:2995:42:2995:42 | x | | main.rs:2995:23:2995:23 | T | -| main.rs:2995:48:2995:49 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2997:13:2997:13 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2997:13:2997:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2997:17:2997:20 | None | | {EXTERNAL LOCATION} | Option | -| main.rs:2997:17:2997:20 | None | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2998:9:2998:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2998:20:2998:20 | x | | {EXTERNAL LOCATION} | Option | -| main.rs:2998:20:2998:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:2998:23:2998:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3005:13:3005:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:13:3005:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3005:17:3005:39 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3005:17:3005:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3005:17:3005:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3005:37:3005:37 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:13:3006:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:13:3006:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:13:3006:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3006:40:3006:40 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3006:40:3006:40 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3006:40:3006:40 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:13:3007:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:13:3007:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3007:13:3007:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:17:3007:52 | ...::A {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3007:17:3007:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3007:17:3007:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3007:50:3007:50 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:13:3009:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:13:3009:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:13:3009:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3009:17:3011:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3010:20:3010:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3013:29:3013:29 | e | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3013:29:3013:29 | e | T1 | main.rs:3013:26:3013:26 | T | -| main.rs:3013:29:3013:29 | e | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3013:53:3013:53 | x | | main.rs:3013:26:3013:26 | T | -| main.rs:3013:59:3013:60 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3016:13:3016:13 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3016:13:3016:13 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3016:13:3016:13 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3016:17:3018:9 | ...::B {...} | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3016:17:3018:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3016:17:3018:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3017:20:3017:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | -| main.rs:3019:9:3019:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3019:23:3019:23 | x | | main.rs:3000:9:3003:9 | MyEither | -| main.rs:3019:23:3019:23 | x | T1 | {EXTERNAL LOCATION} | i32 | -| main.rs:3019:23:3019:23 | x | T2 | {EXTERNAL LOCATION} | String | -| main.rs:3019:26:3019:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:13:3021:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3021:13:3021:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3021:13:3021:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:17:3021:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3021:17:3021:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3021:17:3021:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3021:28:3021:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3022:13:3022:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:13:3022:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:13:3022:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3022:38:3022:38 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3022:38:3022:38 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3022:38:3022:38 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:13:3023:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3023:13:3023:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3023:13:3023:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:17:3023:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3023:17:3023:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3023:17:3023:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3023:43:3023:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:13:3024:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3024:13:3024:13 | x | E | {EXTERNAL LOCATION} | String | -| main.rs:3024:13:3024:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:17:3024:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3024:17:3024:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | -| main.rs:3024:17:3024:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3024:43:3024:43 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3026:29:3026:31 | res | | {EXTERNAL LOCATION} | Result | -| main.rs:3026:29:3026:31 | res | E | main.rs:3026:26:3026:26 | E | -| main.rs:3026:29:3026:31 | res | T | main.rs:3026:23:3026:23 | T | -| main.rs:3026:48:3026:48 | x | | main.rs:3026:26:3026:26 | E | -| main.rs:3026:54:3026:55 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3028:13:3028:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3028:13:3028:13 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3028:13:3028:13 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3028:17:3028:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:3028:17:3028:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | -| main.rs:3028:17:3028:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3028:28:3028:28 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3029:9:3029:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3029:20:3029:20 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:3029:20:3029:20 | x | E | {EXTERNAL LOCATION} | bool | -| main.rs:3029:20:3029:20 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3029:23:3029:27 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:3031:17:3031:17 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:17:3031:17 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:17:3031:17 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3031:21:3031:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:3031:21:3031:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3031:21:3031:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3032:9:3032:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3032:9:3032:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3032:9:3032:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3032:9:3032:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3032:16:3032:16 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:3034:13:3034:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3034:17:3034:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:9:3035:9 | x | | {EXTERNAL LOCATION} | Vec | -| main.rs:3035:9:3035:9 | x | A | {EXTERNAL LOCATION} | Global | -| main.rs:3035:9:3035:9 | x | T | {EXTERNAL LOCATION} | i32 | -| main.rs:3035:9:3035:17 | x.push(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3035:16:3035:16 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:3044:11:3079:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:3045:5:3045:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3046:5:3046:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:5:3047:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:20:3047:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3047:41:3047:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:3048:5:3048:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3049:5:3049:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3050:5:3050:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3051:5:3051:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3052:5:3052:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3053:5:3053:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3054:5:3054:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3055:5:3055:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3056:5:3056:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3057:5:3057:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3058:5:3058:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3059:5:3059:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3060:5:3060:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3061:5:3061:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3062:5:3062:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3063:5:3063:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3064:5:3064:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:3064:5:3064:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:3065:5:3065:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3066:5:3066:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3067:5:3067:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3068:5:3068:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3069:5:3069:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3070:5:3070:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3071:5:3071:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3072:5:3072:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3073:5:3073:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3074:5:3074:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3075:5:3075:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3076:5:3076:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:3077:5:3077:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:3077:5:3077:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:3077:5:3077:20 | ...::f(...) | T | main.rs:2897:5:2899:5 | dyn MyTrait | -| main.rs:3077:5:3077:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:3077:16:3077:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:3078:5:3078:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2675:13:2675:22 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2675:26:2675:27 | .. | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:9:2676:51 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2676:18:2676:48 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2676:19:2676:36 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2676:19:2676:36 | [...] | TArray | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:20:2676:23 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:26:2676:29 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:32:2676:35 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2676:38:2676:47 | range_full | | {EXTERNAL LOCATION} | RangeFull | +| main.rs:2676:50:2676:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2678:13:2678:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2678:13:2678:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2679:9:2682:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:2679:9:2682:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2680:20:2680:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2681:18:2681:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:9:2683:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2683:13:2683:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:18:2683:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:2683:18:2683:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:2683:25:2683:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2687:13:2687:17 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:21:2687:33 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2687:26:2687:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:29:2687:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2687:32:2687:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2688:9:2688:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2688:18:2688:22 | vals3 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2688:24:2688:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2690:13:2690:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2690:13:2690:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:13:2690:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:32:2690:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2690:32:2690:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2690:32:2690:43 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:32:2690:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2690:32:2690:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2690:32:2690:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:33:2690:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2690:39:2690:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2690:42:2690:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2691:9:2691:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2691:13:2691:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:18:2691:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:2691:18:2691:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:2691:18:2691:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:2691:25:2691:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2693:22:2693:33 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2693:22:2693:33 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:22:2693:33 | [...] | TArray | {EXTERNAL LOCATION} | u16 | +| main.rs:2693:23:2693:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:2693:29:2693:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2693:32:2693:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2694:9:2694:26 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2694:25:2694:26 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2696:13:2696:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:13:2696:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2696:13:2696:17 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:13:2696:17 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:21:2696:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2696:21:2696:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2696:21:2696:43 | ...::from(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:21:2696:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:31:2696:42 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2696:31:2696:42 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:31:2696:42 | [...] | TArray | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:32:2696:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:2696:38:2696:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2696:41:2696:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:9:2697:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2697:13:2697:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:13:2697:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:2697:18:2697:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2697:18:2697:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2697:18:2697:22 | vals5 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2697:18:2697:22 | vals5 | T | {EXTERNAL LOCATION} | u32 | +| main.rs:2697:24:2697:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2699:13:2699:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2699:13:2699:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:13:2699:17 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:13:2699:17 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:32:2699:43 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2699:32:2699:43 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:32:2699:43 | [...] | TArray | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:32:2699:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:2699:32:2699:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:2699:32:2699:60 | ... .collect() | T | {EXTERNAL LOCATION} | & | +| main.rs:2699:32:2699:60 | ... .collect() | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:33:2699:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:2699:39:2699:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2699:42:2699:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2700:9:2700:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2700:13:2700:13 | u | | {EXTERNAL LOCATION} | & | +| main.rs:2700:13:2700:13 | u | TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:18:2700:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2700:18:2700:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2700:18:2700:22 | vals6 | T | {EXTERNAL LOCATION} | & | +| main.rs:2700:18:2700:22 | vals6 | T.TRef | {EXTERNAL LOCATION} | u64 | +| main.rs:2700:24:2700:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2702:17:2702:21 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:17:2702:21 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:17:2702:21 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2702:25:2702:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2702:25:2702:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2702:25:2702:34 | ...::new(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2703:9:2703:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2703:9:2703:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2703:9:2703:13 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2703:9:2703:23 | vals7.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2703:20:2703:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:9:2704:25 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2704:13:2704:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:18:2704:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2704:18:2704:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2704:18:2704:22 | vals7 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:2704:24:2704:25 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2706:13:2706:19 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:23:2706:50 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:28:2706:37 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:28:2706:37 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:33:2706:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2706:36:2706:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2706:40:2706:49 | (...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:40:2706:49 | MacroExpr | | {EXTERNAL LOCATION} | Vec | +| main.rs:2706:45:2706:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2706:48:2706:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2708:13:2708:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2708:17:2711:9 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2708:28:2708:34 | matrix1 | | {EXTERNAL LOCATION} | Vec | +| main.rs:2708:36:2711:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:13:2710:13 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2709:29:2710:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2713:17:2713:20 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:17:2713:20 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2713:17:2713:20 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2713:17:2713:20 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2713:17:2713:20 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2713:17:2713:20 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2713:17:2713:20 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2713:24:2713:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2713:24:2713:55 | ...::new(...) | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2713:24:2713:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2713:24:2713:55 | ...::new(...) | V | {EXTERNAL LOCATION} | Box | +| main.rs:2713:24:2713:55 | ...::new(...) | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2713:24:2713:55 | ...::new(...) | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2713:24:2713:55 | ...::new(...) | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:9:2714:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2714:9:2714:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:9:2714:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2714:9:2714:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2714:9:2714:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:9:2714:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2714:9:2714:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:9:2714:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2714:9:2714:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2714:9:2714:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:9:2714:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2714:9:2714:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:21:2714:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2714:24:2714:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2714:24:2714:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2714:24:2714:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2714:24:2714:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2714:33:2714:37 | "one" | | {EXTERNAL LOCATION} | & | +| main.rs:2714:33:2714:37 | "one" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:9:2715:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2715:9:2715:12 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2715:9:2715:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2715:9:2715:12 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2715:9:2715:12 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:9:2715:12 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2715:9:2715:12 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:9:2715:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2715:9:2715:39 | map1.insert(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2715:9:2715:39 | map1.insert(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:9:2715:39 | map1.insert(...) | T.T | {EXTERNAL LOCATION} | & | +| main.rs:2715:9:2715:39 | map1.insert(...) | T.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:21:2715:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2715:24:2715:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2715:24:2715:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2715:24:2715:38 | ...::new(...) | T | {EXTERNAL LOCATION} | & | +| main.rs:2715:24:2715:38 | ...::new(...) | T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2715:33:2715:37 | "two" | | {EXTERNAL LOCATION} | & | +| main.rs:2715:33:2715:37 | "two" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:9:2716:33 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2716:13:2716:15 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2716:13:2716:15 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:20:2716:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2716:20:2716:23 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:20:2716:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2716:20:2716:23 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2716:20:2716:23 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2716:20:2716:23 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2716:20:2716:23 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:20:2716:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:2716:20:2716:30 | map1.keys() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2716:20:2716:30 | map1.keys() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2716:20:2716:30 | map1.keys() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2716:20:2716:30 | map1.keys() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2716:20:2716:30 | map1.keys() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2716:32:2716:33 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:9:2717:37 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2717:13:2717:17 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2717:13:2717:17 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2717:13:2717:17 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2717:13:2717:17 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2717:13:2717:17 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2717:22:2717:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2717:22:2717:25 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2717:22:2717:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2717:22:2717:25 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2717:22:2717:25 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2717:22:2717:25 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2717:22:2717:25 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2717:22:2717:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:2717:22:2717:34 | map1.values() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2717:22:2717:34 | map1.values() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2717:22:2717:34 | map1.values() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2717:22:2717:34 | map1.values() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2717:22:2717:34 | map1.values() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2717:36:2717:37 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:9:2718:42 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2718:13:2718:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2718:13:2718:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2718:13:2718:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:13:2718:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:13:2718:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:14:2718:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2718:14:2718:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:19:2718:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2718:19:2718:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2718:19:2718:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:19:2718:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:19:2718:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:29:2718:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2718:29:2718:32 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:29:2718:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2718:29:2718:32 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2718:29:2718:32 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:29:2718:32 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:29:2718:32 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:29:2718:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:2718:29:2718:39 | map1.iter() | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2718:29:2718:39 | map1.iter() | V | {EXTERNAL LOCATION} | Box | +| main.rs:2718:29:2718:39 | map1.iter() | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2718:29:2718:39 | map1.iter() | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2718:29:2718:39 | map1.iter() | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2718:41:2718:42 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:9:2719:36 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2719:13:2719:24 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2719:13:2719:24 | TuplePat | T0 | {EXTERNAL LOCATION} | & | +| main.rs:2719:13:2719:24 | TuplePat | T0.TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:13:2719:24 | TuplePat | T1 | {EXTERNAL LOCATION} | & | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:13:2719:24 | TuplePat | T1.TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:14:2719:16 | key | | {EXTERNAL LOCATION} | & | +| main.rs:2719:14:2719:16 | key | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:19:2719:23 | value | | {EXTERNAL LOCATION} | & | +| main.rs:2719:19:2719:23 | value | TRef | {EXTERNAL LOCATION} | Box | +| main.rs:2719:19:2719:23 | value | TRef.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:19:2719:23 | value | TRef.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:19:2719:23 | value | TRef.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:29:2719:33 | &map1 | | {EXTERNAL LOCATION} | & | +| main.rs:2719:29:2719:33 | &map1 | TRef | {EXTERNAL LOCATION} | HashMap | +| main.rs:2719:29:2719:33 | &map1 | TRef.K | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:29:2719:33 | &map1 | TRef.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2719:29:2719:33 | &map1 | TRef.V | {EXTERNAL LOCATION} | Box | +| main.rs:2719:29:2719:33 | &map1 | TRef.V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:29:2719:33 | &map1 | TRef.V.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:29:2719:33 | &map1 | TRef.V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:30:2719:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:2719:30:2719:33 | map1 | K | {EXTERNAL LOCATION} | i32 | +| main.rs:2719:30:2719:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:2719:30:2719:33 | map1 | V | {EXTERNAL LOCATION} | Box | +| main.rs:2719:30:2719:33 | map1 | V.A | {EXTERNAL LOCATION} | Global | +| main.rs:2719:30:2719:33 | map1 | V.T | {EXTERNAL LOCATION} | & | +| main.rs:2719:30:2719:33 | map1 | V.T.TRef | {EXTERNAL LOCATION} | str | +| main.rs:2719:35:2719:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2723:17:2723:17 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2723:26:2723:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2723:26:2723:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2725:13:2725:13 | _ | | {EXTERNAL LOCATION} | () | +| main.rs:2725:17:2728:9 | while ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2725:23:2725:23 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2725:23:2725:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2725:27:2725:28 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2726:9:2728:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2727:13:2727:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2727:13:2727:18 | ... += ... | | {EXTERNAL LOCATION} | () | +| main.rs:2727:18:2727:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2739:40:2741:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:2739:40:2741:9 | { ... } | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2739:40:2741:9 | { ... } | T.T | main.rs:2738:10:2738:19 | T | +| main.rs:2740:13:2740:16 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:2740:13:2740:16 | None | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2740:13:2740:16 | None | T.T | main.rs:2738:10:2738:19 | T | +| main.rs:2743:30:2745:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2743:30:2745:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2744:13:2744:28 | S1(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2744:13:2744:28 | S1(...) | T | main.rs:2738:10:2738:19 | T | +| main.rs:2744:16:2744:27 | ...::default(...) | | main.rs:2738:10:2738:19 | T | +| main.rs:2747:19:2747:22 | SelfParam | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:19:2747:22 | SelfParam | T | main.rs:2738:10:2738:19 | T | +| main.rs:2747:33:2749:9 | { ... } | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2747:33:2749:9 | { ... } | T | main.rs:2738:10:2738:19 | T | +| main.rs:2748:13:2748:16 | self | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2748:13:2748:16 | self | T | main.rs:2738:10:2738:19 | T | +| main.rs:2760:15:2760:15 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2760:26:2762:5 | { ... } | | main.rs:2760:12:2760:12 | T | +| main.rs:2761:9:2761:9 | x | | main.rs:2760:12:2760:12 | T | +| main.rs:2764:16:2786:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2765:13:2765:14 | x1 | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:13:2765:14 | x1 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2765:13:2765:14 | x1 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2765:34:2765:48 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2766:13:2766:14 | x2 | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:13:2766:14 | x2 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:13:2766:14 | x2 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2766:18:2766:38 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:13:2767:14 | x3 | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:13:2767:14 | x3 | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:13:2767:14 | x3 | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T | main.rs:2733:5:2733:20 | S1 | +| main.rs:2767:18:2767:32 | ...::assoc_fun(...) | T.T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:13:2768:14 | x4 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:13:2768:14 | x4 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:18:2768:48 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:18:2768:48 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2768:35:2768:47 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2768:35:2768:47 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:13:2769:14 | x5 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:13:2769:14 | x5 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:18:2769:42 | ...::method(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:18:2769:42 | ...::method(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2769:29:2769:41 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2769:29:2769:41 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2770:13:2770:14 | x6 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2770:13:2770:14 | x6 | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2770:18:2770:45 | S4::<...>(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2770:18:2770:45 | S4::<...>(...) | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2770:27:2770:44 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2771:13:2771:14 | x7 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2771:13:2771:14 | x7 | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2771:18:2771:23 | S4(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2771:18:2771:23 | S4(...) | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2771:21:2771:22 | S2 | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2772:13:2772:14 | x8 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2772:13:2772:14 | x8 | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:18:2772:22 | S4(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2772:18:2772:22 | S4(...) | T4 | {EXTERNAL LOCATION} | i32 | +| main.rs:2772:21:2772:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2773:13:2773:14 | x9 | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2773:13:2773:14 | x9 | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2773:18:2773:34 | S4(...) | | main.rs:2754:5:2754:27 | S4 | +| main.rs:2773:18:2773:34 | S4(...) | T4 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2773:21:2773:33 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:13:2774:15 | x10 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:13:2774:15 | x10 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2774:19:2777:9 | S5::<...> {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2776:20:2776:37 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:13:2778:15 | x11 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2778:13:2778:15 | x11 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:19:2778:34 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2778:19:2778:34 | S5 {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2778:31:2778:32 | S2 | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2779:13:2779:15 | x12 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:13:2779:15 | x12 | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:19:2779:33 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2779:19:2779:33 | S5 {...} | T5 | {EXTERNAL LOCATION} | i32 | +| main.rs:2779:31:2779:31 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2780:13:2780:15 | x13 | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:13:2780:15 | x13 | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2780:19:2783:9 | S5 {...} | | main.rs:2756:5:2758:5 | S5 | +| main.rs:2780:19:2783:9 | S5 {...} | T5 | main.rs:2735:5:2736:14 | S2 | +| main.rs:2782:20:2782:32 | ...::default(...) | | main.rs:2735:5:2736:14 | S2 | +| main.rs:2784:13:2784:15 | x14 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:19:2784:48 | foo::<...>(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2784:30:2784:47 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:2785:13:2785:15 | x15 | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:13:2785:15 | x15 | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2785:19:2785:37 | ...::default(...) | | main.rs:2733:5:2733:20 | S1 | +| main.rs:2785:19:2785:37 | ...::default(...) | T | main.rs:2735:5:2736:14 | S2 | +| main.rs:2794:35:2796:9 | { ... } | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2794:35:2796:9 | { ... } | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2794:35:2796:9 | { ... } | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:13:2795:26 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2795:13:2795:26 | TupleExpr | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:13:2795:26 | TupleExpr | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:14:2795:18 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2795:21:2795:25 | S1 {...} | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:16:2797:19 | SelfParam | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2797:22:2797:23 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2800:16:2834:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2801:13:2801:13 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:13:2801:13 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:13:2801:13 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2801:17:2801:30 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:17:2802:17 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:17:2802:17 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2802:21:2802:34 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:13:2803:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:13:2803:18 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:13:2803:18 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:14:2803:14 | c | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:17:2803:17 | d | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2803:22:2803:35 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:13:2804:22 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:13:2804:22 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:13:2804:22 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:18:2804:18 | e | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:21:2804:21 | f | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2804:26:2804:39 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:13:2805:26 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:13:2805:26 | TuplePat | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:13:2805:26 | TuplePat | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:18:2805:18 | g | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:25:2805:25 | h | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2805:30:2805:43 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2807:9:2807:9 | a | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:9 | a | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:11 | a.0 | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2807:9:2807:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2808:9:2808:9 | b | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2808:9:2808:9 | b | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:9 | b | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:11 | b.1 | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2808:9:2808:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2809:9:2809:9 | c | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2809:9:2809:15 | c.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2810:9:2810:9 | d | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2810:9:2810:15 | d.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2811:9:2811:9 | e | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2811:9:2811:15 | e.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2812:9:2812:9 | f | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2812:9:2812:15 | f.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2813:9:2813:9 | g | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2813:9:2813:15 | g.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2814:9:2814:9 | h | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2814:9:2814:15 | h.foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2819:13:2819:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2819:17:2819:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2820:13:2820:13 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2820:17:2820:34 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2821:13:2821:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2821:13:2821:16 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2821:13:2821:16 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2821:20:2821:25 | TupleExpr | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2821:20:2821:25 | TupleExpr | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2821:20:2821:25 | TupleExpr | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2821:21:2821:21 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:2821:24:2821:24 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2822:13:2822:13 | i | | {EXTERNAL LOCATION} | i64 | +| main.rs:2822:22:2822:25 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2822:22:2822:25 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2822:22:2822:25 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2822:22:2822:27 | pair.0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:2823:13:2823:13 | j | | {EXTERNAL LOCATION} | bool | +| main.rs:2823:23:2823:26 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2823:23:2823:26 | pair | T0 | {EXTERNAL LOCATION} | i64 | +| main.rs:2823:23:2823:26 | pair | T1 | {EXTERNAL LOCATION} | bool | +| main.rs:2823:23:2823:28 | pair.1 | | {EXTERNAL LOCATION} | bool | +| main.rs:2825:13:2825:16 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2825:13:2825:16 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:13:2825:16 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:20:2825:25 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2825:20:2825:25 | [...] | TArray | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:20:2825:32 | ... .into() | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2825:20:2825:32 | ... .into() | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:20:2825:32 | ... .into() | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:21:2825:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2825:24:2825:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2826:9:2829:9 | match pair { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2826:15:2826:18 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2826:15:2826:18 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2826:15:2826:18 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:13:2827:18 | TuplePat | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2827:13:2827:18 | TuplePat | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:13:2827:18 | TuplePat | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:14:2827:14 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:17:2827:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2827:23:2827:42 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2827:30:2827:41 | "unexpected" | | {EXTERNAL LOCATION} | & | +| main.rs:2827:30:2827:41 | "unexpected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2827:30:2827:41 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2827:30:2827:41 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2828:13:2828:13 | _ | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2828:13:2828:13 | _ | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:13:2828:13 | _ | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2828:18:2828:35 | MacroExpr | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | "expected" | | {EXTERNAL LOCATION} | & | +| main.rs:2828:25:2828:34 | "expected" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2828:25:2828:34 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2828:25:2828:34 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2830:13:2830:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2830:17:2830:20 | pair | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2830:17:2830:20 | pair | T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2830:17:2830:20 | pair | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:2830:17:2830:22 | pair.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2832:13:2832:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2832:13:2832:13 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:13:2832:13 | y | TRef.T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:13:2832:13 | y | TRef.T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:17:2832:31 | &... | | {EXTERNAL LOCATION} | & | +| main.rs:2832:17:2832:31 | &... | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:17:2832:31 | &... | TRef.T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:17:2832:31 | &... | TRef.T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2832:18:2832:31 | ...::get_pair(...) | T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:9 | y | | {EXTERNAL LOCATION} | & | +| main.rs:2833:9:2833:9 | y | TRef | {EXTERNAL LOCATION} | (T_2) | +| main.rs:2833:9:2833:9 | y | TRef.T0 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:9 | y | TRef.T1 | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:11 | y.0 | | main.rs:2790:5:2791:16 | S1 | +| main.rs:2833:9:2833:17 | ... .foo() | | {EXTERNAL LOCATION} | () | +| main.rs:2839:27:2861:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2840:13:2840:23 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:13:2840:23 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:13:2840:23 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:27:2840:42 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2840:27:2840:42 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2840:27:2840:42 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2840:36:2840:41 | 100i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2843:9:2851:9 | match boxed_value { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2843:15:2843:25 | boxed_value | | {EXTERNAL LOCATION} | Box | +| main.rs:2843:15:2843:25 | boxed_value | A | {EXTERNAL LOCATION} | Global | +| main.rs:2843:15:2843:25 | boxed_value | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2844:13:2844:19 | box 100 | | {EXTERNAL LOCATION} | Box | +| main.rs:2844:13:2844:19 | box 100 | A | {EXTERNAL LOCATION} | Global | +| main.rs:2844:13:2844:19 | box 100 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2844:17:2844:19 | 100 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2844:24:2846:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2845:26:2845:36 | "Boxed 100\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2845:26:2845:36 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2845:26:2845:36 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2847:13:2847:17 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2847:13:2847:17 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2847:13:2847:17 | box ... | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2847:22:2850:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2849:26:2849:42 | "Boxed value: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2849:26:2849:51 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2849:26:2849:51 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2854:13:2854:22 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:13:2854:22 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:13:2854:22 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2854:13:2854:22 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:13:2854:22 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2854:26:2854:50 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:26:2854:50 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:26:2854:50 | ...::new(...) | T | {EXTERNAL LOCATION} | Box | +| main.rs:2854:26:2854:50 | ...::new(...) | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:26:2854:50 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2854:35:2854:49 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2854:35:2854:49 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2854:35:2854:49 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2854:44:2854:48 | 42i32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2855:9:2860:9 | match nested_box { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2855:15:2855:24 | nested_box | | {EXTERNAL LOCATION} | Box | +| main.rs:2855:15:2855:24 | nested_box | A | {EXTERNAL LOCATION} | Global | +| main.rs:2855:15:2855:24 | nested_box | T | {EXTERNAL LOCATION} | Box | +| main.rs:2855:15:2855:24 | nested_box | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2855:15:2855:24 | nested_box | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2856:13:2856:21 | box ... | | {EXTERNAL LOCATION} | Box | +| main.rs:2856:13:2856:21 | box ... | A | {EXTERNAL LOCATION} | Global | +| main.rs:2856:13:2856:21 | box ... | T | {EXTERNAL LOCATION} | Box | +| main.rs:2856:13:2856:21 | box ... | T.A | {EXTERNAL LOCATION} | Global | +| main.rs:2856:13:2856:21 | box ... | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2856:26:2859:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2858:26:2858:43 | "Nested boxed: {}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2858:26:2858:59 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2858:26:2858:59 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2870:36:2872:9 | { ... } | | main.rs:2867:5:2867:22 | Path | +| main.rs:2871:13:2871:19 | Path {...} | | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:29:2874:33 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2874:29:2874:33 | SelfParam | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2874:59:2876:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:2874:59:2876:9 | { ... } | E | {EXTERNAL LOCATION} | () | +| main.rs:2874:59:2876:9 | { ... } | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2875:13:2875:30 | Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2875:13:2875:30 | Ok(...) | E | {EXTERNAL LOCATION} | () | +| main.rs:2875:13:2875:30 | Ok(...) | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2875:16:2875:29 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2882:39:2884:9 | { ... } | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2883:13:2883:22 | PathBuf {...} | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:18:2892:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2892:18:2892:22 | SelfParam | TRef | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2892:34:2896:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:2892:34:2896:9 | { ... } | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2894:33:2894:43 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2895:13:2895:17 | &path | | {EXTERNAL LOCATION} | & | +| main.rs:2895:13:2895:17 | &path | TRef | main.rs:2867:5:2867:22 | Path | +| main.rs:2895:14:2895:17 | path | | main.rs:2867:5:2867:22 | Path | +| main.rs:2899:16:2907:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2900:13:2900:17 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2900:21:2900:31 | ...::new(...) | | main.rs:2867:5:2867:22 | Path | +| main.rs:2901:13:2901:17 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2901:13:2901:17 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2901:13:2901:17 | path2 | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2901:21:2901:25 | path1 | | main.rs:2867:5:2867:22 | Path | +| main.rs:2901:21:2901:40 | path1.canonicalize() | | {EXTERNAL LOCATION} | Result | +| main.rs:2901:21:2901:40 | path1.canonicalize() | E | {EXTERNAL LOCATION} | () | +| main.rs:2901:21:2901:40 | path1.canonicalize() | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2902:13:2902:17 | path3 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2902:21:2902:25 | path2 | | {EXTERNAL LOCATION} | Result | +| main.rs:2902:21:2902:25 | path2 | E | {EXTERNAL LOCATION} | () | +| main.rs:2902:21:2902:25 | path2 | T | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2902:21:2902:34 | path2.unwrap() | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2904:13:2904:20 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2904:24:2904:37 | ...::new(...) | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2905:24:2905:31 | pathbuf1 | | main.rs:2879:5:2879:25 | PathBuf | +| main.rs:2912:14:2912:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2912:14:2912:18 | SelfParam | TRef | main.rs:2911:5:2913:5 | Self [trait MyTrait] | +| main.rs:2919:14:2919:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2919:14:2919:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2919:14:2919:18 | SelfParam | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2919:28:2921:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2920:13:2920:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2920:13:2920:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2920:13:2920:16 | self | TRef.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2920:13:2920:18 | self.0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:14:2925:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2925:14:2925:18 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2925:14:2925:18 | SelfParam | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2925:28:2927:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2926:13:2926:16 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:16 | self | TRef.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:18 | self.0 | | main.rs:2915:5:2916:19 | S | +| main.rs:2926:13:2926:18 | self.0 | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2926:13:2926:21 | ... .0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2931:15:2931:19 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2931:15:2931:19 | SelfParam | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2931:15:2931:19 | SelfParam | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2931:33:2933:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2931:33:2933:9 | { ... } | T.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:13:2932:24 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2932:13:2932:24 | S(...) | T | main.rs:2915:5:2916:19 | S | +| main.rs:2932:13:2932:24 | S(...) | T.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:15:2932:23 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2932:15:2932:23 | S(...) | T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:17:2932:20 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2932:17:2932:20 | self | TRef | main.rs:2915:5:2916:19 | S | +| main.rs:2932:17:2932:20 | self | TRef.T | main.rs:2930:10:2930:16 | T | +| main.rs:2932:17:2932:22 | self.0 | | main.rs:2930:10:2930:16 | T | +| main.rs:2936:14:2936:14 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2936:48:2953:5 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2936:48:2953:5 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2936:48:2953:5 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2936:48:2953:5 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:13:2937:13 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2937:13:2937:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:17:2942:9 | if b {...} else {...} | | main.rs:2915:5:2916:19 | S | +| main.rs:2937:17:2942:9 | if b {...} else {...} | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2937:20:2937:20 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2937:22:2940:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2937:22:2940:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2938:17:2938:17 | y | | main.rs:2915:5:2916:19 | S | +| main.rs:2938:17:2938:17 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2938:21:2938:38 | ...::default(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2938:21:2938:38 | ...::default(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2939:13:2939:13 | y | | main.rs:2915:5:2916:19 | S | +| main.rs:2939:13:2939:13 | y | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2940:16:2942:9 | { ... } | | main.rs:2915:5:2916:19 | S | +| main.rs:2940:16:2942:9 | { ... } | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2941:13:2941:16 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2941:13:2941:16 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2941:15:2941:15 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2946:13:2946:13 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2946:13:2946:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2946:17:2946:20 | S(...) | | main.rs:2915:5:2916:19 | S | +| main.rs:2946:17:2946:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2946:19:2946:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:9:2952:9 | if b {...} else {...} | | {EXTERNAL LOCATION} | Box | +| main.rs:2947:9:2952:9 | if b {...} else {...} | A | {EXTERNAL LOCATION} | Global | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:9:2952:9 | if b {...} else {...} | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:12:2947:12 | b | | {EXTERNAL LOCATION} | bool | +| main.rs:2947:14:2950:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2947:14:2950:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2947:14:2950:9 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2947:14:2950:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:14:2950:9 | { ... } | T.T | main.rs:2915:5:2916:19 | S | +| main.rs:2947:14:2950:9 | { ... } | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2947:14:2950:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2948:17:2948:17 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2948:17:2948:17 | x | T | main.rs:2915:5:2916:19 | S | +| main.rs:2948:17:2948:17 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2948:21:2948:21 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2948:21:2948:21 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2948:21:2948:26 | x.m2() | | main.rs:2915:5:2916:19 | S | +| main.rs:2948:21:2948:26 | x.m2() | T | main.rs:2915:5:2916:19 | S | +| main.rs:2948:21:2948:26 | x.m2() | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2949:13:2949:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2949:13:2949:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2949:13:2949:23 | ...::new(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2949:13:2949:23 | ...::new(...) | T | main.rs:2915:5:2916:19 | S | +| main.rs:2949:13:2949:23 | ...::new(...) | T.T | main.rs:2915:5:2916:19 | S | +| main.rs:2949:13:2949:23 | ...::new(...) | T.T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2949:13:2949:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2949:22:2949:22 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2949:22:2949:22 | x | T | main.rs:2915:5:2916:19 | S | +| main.rs:2949:22:2949:22 | x | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2950:16:2952:9 | { ... } | | {EXTERNAL LOCATION} | Box | +| main.rs:2950:16:2952:9 | { ... } | A | {EXTERNAL LOCATION} | Global | +| main.rs:2950:16:2952:9 | { ... } | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2950:16:2952:9 | { ... } | T | main.rs:2915:5:2916:19 | S | +| main.rs:2950:16:2952:9 | { ... } | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2950:16:2952:9 | { ... } | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:13:2951:23 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2951:13:2951:23 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2951:13:2951:23 | ...::new(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:2951:13:2951:23 | ...::new(...) | T | main.rs:2915:5:2916:19 | S | +| main.rs:2951:13:2951:23 | ...::new(...) | T.T | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:13:2951:23 | ...::new(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2951:22:2951:22 | x | | main.rs:2915:5:2916:19 | S | +| main.rs:2951:22:2951:22 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:2957:22:2961:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2958:18:2958:18 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2958:33:2960:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:13:2959:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:13:2959:17 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:2959:17:2959:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2966:11:2966:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2966:30:2974:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2968:13:2968:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2968:17:2972:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2969:13:2971:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2969:16:2969:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2969:21:2971:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2970:24:2970:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2973:9:2973:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2977:20:2984:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2980:26:2980:27 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2982:18:2982:26 | "b: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2982:18:2982:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2982:18:2982:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2983:9:2983:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2986:20:2988:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2987:16:2987:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2991:11:2991:14 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2991:30:2999:5 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:2992:13:2992:13 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2992:17:2996:9 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2993:13:2995:13 | if cond {...} | | {EXTERNAL LOCATION} | () | +| main.rs:2993:16:2993:19 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:2993:21:2995:13 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2994:24:2994:25 | 12 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | | {EXTERNAL LOCATION} | & | +| main.rs:2997:18:2997:26 | "a: {:?}\\n" | TRef | {EXTERNAL LOCATION} | str | +| main.rs:2997:18:2997:29 | ...::_print(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2997:18:2997:29 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2997:29:2997:29 | a | | {EXTERNAL LOCATION} | () | +| main.rs:2998:9:2998:9 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3003:16:3050:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3004:13:3004:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3004:13:3004:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3004:17:3004:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:3004:17:3004:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:13:3005:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3005:13:3005:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3005:30:3005:30 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3005:30:3005:30 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3006:13:3006:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3006:13:3006:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3006:17:3006:35 | ...::None | | {EXTERNAL LOCATION} | Option | +| main.rs:3006:17:3006:35 | ...::None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3007:13:3007:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3007:13:3007:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3007:17:3007:35 | ...::None::<...> | | {EXTERNAL LOCATION} | Option | +| main.rs:3007:17:3007:35 | ...::None::<...> | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3009:26:3009:28 | opt | | {EXTERNAL LOCATION} | Option | +| main.rs:3009:26:3009:28 | opt | T | main.rs:3009:23:3009:23 | T | +| main.rs:3009:42:3009:42 | x | | main.rs:3009:23:3009:23 | T | +| main.rs:3009:48:3009:49 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3011:13:3011:13 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3011:13:3011:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3011:17:3011:20 | None | | {EXTERNAL LOCATION} | Option | +| main.rs:3011:17:3011:20 | None | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3012:9:3012:24 | pin_option(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3012:20:3012:20 | x | | {EXTERNAL LOCATION} | Option | +| main.rs:3012:20:3012:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3012:23:3012:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3019:13:3019:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3019:13:3019:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3019:13:3019:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3019:17:3019:39 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3019:17:3019:39 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3019:17:3019:39 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3019:37:3019:37 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:13:3020:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:13:3020:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3020:40:3020:40 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3020:40:3020:40 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3020:40:3020:40 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:13:3021:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:13:3021:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3021:13:3021:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:17:3021:52 | ...::A {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3021:17:3021:52 | ...::A {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3021:17:3021:52 | ...::A {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3021:50:3021:50 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:13:3023:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:13:3023:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:13:3023:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3023:17:3025:9 | ...::B::<...> {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3024:20:3024:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3027:29:3027:29 | e | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3027:29:3027:29 | e | T1 | main.rs:3027:26:3027:26 | T | +| main.rs:3027:29:3027:29 | e | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3027:53:3027:53 | x | | main.rs:3027:26:3027:26 | T | +| main.rs:3027:59:3027:60 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3030:13:3030:13 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3030:13:3030:13 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3030:13:3030:13 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3030:17:3032:9 | ...::B {...} | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3030:17:3032:9 | ...::B {...} | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3030:17:3032:9 | ...::B {...} | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3031:20:3031:32 | ...::new(...) | | {EXTERNAL LOCATION} | String | +| main.rs:3033:9:3033:27 | pin_my_either(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3033:23:3033:23 | x | | main.rs:3014:9:3017:9 | MyEither | +| main.rs:3033:23:3033:23 | x | T1 | {EXTERNAL LOCATION} | i32 | +| main.rs:3033:23:3033:23 | x | T2 | {EXTERNAL LOCATION} | String | +| main.rs:3033:26:3033:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3035:13:3035:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3035:13:3035:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3035:13:3035:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3035:17:3035:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3035:17:3035:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3035:17:3035:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3035:28:3035:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3036:13:3036:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3036:13:3036:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3036:13:3036:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3036:38:3036:38 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3036:38:3036:38 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3036:38:3036:38 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3037:13:3037:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3037:13:3037:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3037:13:3037:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3037:17:3037:44 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3037:17:3037:44 | ...::Ok(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3037:17:3037:44 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3037:43:3037:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3038:13:3038:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3038:13:3038:13 | x | E | {EXTERNAL LOCATION} | String | +| main.rs:3038:13:3038:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | E | {EXTERNAL LOCATION} | String | +| main.rs:3038:17:3038:44 | ...::Ok::<...>(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3038:43:3038:43 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3040:29:3040:31 | res | | {EXTERNAL LOCATION} | Result | +| main.rs:3040:29:3040:31 | res | E | main.rs:3040:26:3040:26 | E | +| main.rs:3040:29:3040:31 | res | T | main.rs:3040:23:3040:23 | T | +| main.rs:3040:48:3040:48 | x | | main.rs:3040:26:3040:26 | E | +| main.rs:3040:54:3040:55 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3042:13:3042:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3042:13:3042:13 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:3042:13:3042:13 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3042:17:3042:29 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:3042:17:3042:29 | ...::Ok(...) | E | {EXTERNAL LOCATION} | bool | +| main.rs:3042:17:3042:29 | ...::Ok(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3042:28:3042:28 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3043:9:3043:28 | pin_result(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3043:20:3043:20 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:3043:20:3043:20 | x | E | {EXTERNAL LOCATION} | bool | +| main.rs:3043:20:3043:20 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3043:23:3043:27 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:3045:17:3045:17 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:17:3045:17 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3045:17:3045:17 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3045:21:3045:30 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:3045:21:3045:30 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3045:21:3045:30 | ...::new(...) | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3046:9:3046:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3046:9:3046:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3046:9:3046:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3046:9:3046:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3046:16:3046:16 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3048:13:3048:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:3048:17:3048:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:3049:9:3049:9 | x | | {EXTERNAL LOCATION} | Vec | +| main.rs:3049:9:3049:9 | x | A | {EXTERNAL LOCATION} | Global | +| main.rs:3049:9:3049:9 | x | T | {EXTERNAL LOCATION} | i32 | +| main.rs:3049:9:3049:17 | x.push(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3049:16:3049:16 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:3056:14:3056:17 | SelfParam | | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:14:3059:18 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3059:14:3059:18 | SelfParam | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:21:3059:25 | other | | {EXTERNAL LOCATION} | & | +| main.rs:3059:21:3059:25 | other | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3059:44:3061:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3059:44:3061:9 | { ... } | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3060:13:3060:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3060:13:3060:16 | self | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3060:13:3060:20 | self.f() | | {EXTERNAL LOCATION} | & | +| main.rs:3060:13:3060:20 | self.f() | TRef | main.rs:3054:5:3062:5 | Self [trait MyTrait] | +| main.rs:3066:14:3066:17 | SelfParam | | {EXTERNAL LOCATION} | i32 | +| main.rs:3066:28:3068:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:3067:13:3067:16 | self | | {EXTERNAL LOCATION} | i32 | +| main.rs:3073:14:3073:17 | SelfParam | | {EXTERNAL LOCATION} | usize | +| main.rs:3073:28:3075:9 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3074:13:3074:16 | self | | {EXTERNAL LOCATION} | usize | +| main.rs:3080:14:3080:17 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:3080:14:3080:17 | SelfParam | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3080:28:3082:9 | { ... } | | {EXTERNAL LOCATION} | & | +| main.rs:3080:28:3082:9 | { ... } | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3081:13:3081:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:3081:13:3081:16 | self | TRef | main.rs:3078:10:3078:10 | T | +| main.rs:3085:25:3089:5 | { ... } | | {EXTERNAL LOCATION} | usize | +| main.rs:3086:17:3086:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3086:17:3086:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3086:21:3086:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3086:21:3086:21 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3087:9:3087:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3087:9:3087:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3087:9:3087:17 | ... = ... | | {EXTERNAL LOCATION} | () | +| main.rs:3087:13:3087:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3087:13:3087:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3087:13:3087:17 | x.f() | | {EXTERNAL LOCATION} | i32 | +| main.rs:3087:13:3087:17 | x.f() | | {EXTERNAL LOCATION} | usize | +| main.rs:3088:9:3088:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3088:9:3088:9 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3091:12:3099:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3092:13:3092:13 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3092:24:3092:24 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3092:24:3092:24 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:3093:13:3093:13 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3093:13:3093:13 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3093:17:3093:18 | &1 | | {EXTERNAL LOCATION} | & | +| main.rs:3093:17:3093:18 | &1 | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3093:18:3093:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3094:13:3094:13 | z | | {EXTERNAL LOCATION} | & | +| main.rs:3094:13:3094:13 | z | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3094:17:3094:17 | x | | {EXTERNAL LOCATION} | usize | +| main.rs:3094:17:3094:22 | x.g(...) | | {EXTERNAL LOCATION} | & | +| main.rs:3094:17:3094:22 | x.g(...) | TRef | {EXTERNAL LOCATION} | usize | +| main.rs:3094:21:3094:21 | y | | {EXTERNAL LOCATION} | & | +| main.rs:3094:21:3094:21 | y | TRef | {EXTERNAL LOCATION} | i32 | +| main.rs:3096:13:3096:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3096:17:3096:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3097:13:3097:13 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3097:24:3097:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:3097:24:3097:24 | 1 | | {EXTERNAL LOCATION} | usize | +| main.rs:3098:13:3098:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:3098:17:3098:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:3098:17:3098:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | +| main.rs:3098:23:3098:23 | y | | {EXTERNAL LOCATION} | usize | +| main.rs:3107:11:3142:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:3108:5:3108:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3109:5:3109:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:5:3110:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:20:3110:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3110:41:3110:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:3111:5:3111:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3112:5:3112:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3113:5:3113:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3114:5:3114:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3115:5:3115:33 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3116:5:3116:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3117:5:3117:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3118:5:3118:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3119:5:3119:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3120:5:3120:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3121:5:3121:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3122:5:3122:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3123:5:3123:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3124:5:3124:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3125:5:3125:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3126:5:3126:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3127:5:3127:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:3127:5:3127:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:3128:5:3128:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3129:5:3129:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3130:5:3130:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3131:5:3131:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3132:5:3132:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3133:5:3133:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3134:5:3134:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3135:5:3135:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3136:5:3136:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3137:5:3137:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3138:5:3138:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3139:5:3139:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:3140:5:3140:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:3140:5:3140:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:3140:5:3140:20 | ...::f(...) | T | main.rs:2911:5:2913:5 | dyn MyTrait | +| main.rs:3140:5:3140:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:3140:16:3140:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:3141:5:3141:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:13:26:133:1 | { ... } | | {EXTERNAL LOCATION} | Option | | pattern_matching.rs:13:26:133:1 | { ... } | T | {EXTERNAL LOCATION} | () | | pattern_matching.rs:14:9:14:13 | value | | {EXTERNAL LOCATION} | Option | @@ -11538,26 +11640,26 @@ inferType | pattern_matching.rs:269:13:269:23 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:269:27:269:30 | 5i32 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:5:276:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:270:11:270:26 | &mut ref_mut_val | TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:270:16:270:26 | ref_mut_val | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:271:17:271:17 | x | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:271:17:271:17 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:271:17:271:17 | x | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:271:17:271:17 | x | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:271:17:271:17 | x | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:271:22:275:9 | { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:33:272:33 | x | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:272:33:272:33 | x | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:17:272:29 | ref_mut_bound | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:272:33:272:33 | x | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:33:272:33 | x | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:272:33:272:33 | x | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:13:273:27 | * ... | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:13:273:32 | ... += ... | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:273:14:273:27 | * ... | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:14:273:27 | * ... | TRef | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRef | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRef.TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:273:14:273:27 | * ... | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:14:273:27 | * ... | TRefMut | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRefMut | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:273:15:273:27 | ref_mut_bound | TRefMut.TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:273:32:273:32 | 1 | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:274:22:274:38 | "Ref mut pattern\\n" | TRef | {EXTERNAL LOCATION} | str | @@ -11681,11 +11783,11 @@ inferType | pattern_matching.rs:338:22:338:60 | { ... } | | {EXTERNAL LOCATION} | () | | pattern_matching.rs:338:50:338:60 | deref_bound | | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:5:347:5 | match ... { ... } | | {EXTERNAL LOCATION} | () | -| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:342:11:342:28 | &mut mutable_value | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:342:11:342:28 | &mut mutable_value | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:342:11:342:28 | &mut mutable_value | TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:342:16:342:28 | mutable_value | | {EXTERNAL LOCATION} | i32 | -| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | & | -| pattern_matching.rs:343:9:343:18 | &mut ... | TRef | {EXTERNAL LOCATION} | i32 | +| pattern_matching.rs:343:9:343:18 | &mut ... | | {EXTERNAL LOCATION} | &mut | +| pattern_matching.rs:343:9:343:18 | &mut ... | TRefMut | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:343:18:343:18 | x | | {EXTERNAL LOCATION} | & | | pattern_matching.rs:343:18:343:18 | x | TRef | {EXTERNAL LOCATION} | i32 | | pattern_matching.rs:343:23:346:9 | { ... } | | {EXTERNAL LOCATION} | () | @@ -12901,8 +13003,8 @@ inferType | raw_pointer.rs:54:29:54:31 | &10 | TRef | {EXTERNAL LOCATION} | i32 | | raw_pointer.rs:54:30:54:31 | 10 | | {EXTERNAL LOCATION} | i32 | | raw_pointer.rs:55:5:55:36 | raw_pointer_mut_deref(...) | | {EXTERNAL LOCATION} | i32 | -| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | & | -| raw_pointer.rs:55:27:55:35 | &mut true | TRef | {EXTERNAL LOCATION} | bool | +| raw_pointer.rs:55:27:55:35 | &mut true | | {EXTERNAL LOCATION} | &mut | +| raw_pointer.rs:55:27:55:35 | &mut true | TRefMut | {EXTERNAL LOCATION} | bool | | raw_pointer.rs:55:32:55:35 | true | | {EXTERNAL LOCATION} | bool | | raw_pointer.rs:56:5:56:22 | raw_const_borrow(...) | | {EXTERNAL LOCATION} | () | | raw_pointer.rs:57:5:57:20 | raw_mut_borrow(...) | | {EXTERNAL LOCATION} | () | diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 6b4022b86e5..00000000000 --- a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,3 +0,0 @@ -multipleCallTargets -| main.rs:91:19:91:40 | ...::from(...) | -| main.rs:113:19:113:40 | ...::from(...) | diff --git a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index bb60014263b..00000000000 --- a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleCallTargets -| my_struct.rs:25:19:25:37 | ...::from(...) | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected index 563e370b4ed..ed21d9772fc 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected @@ -6,7 +6,7 @@ | Files extracted - without errors % | 57 | | Inconsistencies - AST | 0 | | Inconsistencies - CFG | 0 | -| Inconsistencies - Path resolution | 1 | +| Inconsistencies - Path resolution | 0 | | Inconsistencies - SSA | 0 | | Inconsistencies - data flow | 0 | | Lines of code extracted | 60 | diff --git a/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected b/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected index 58f42bec0c8..385ce0f58c4 100644 --- a/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected +++ b/rust/ql/test/query-tests/security/CWE-079/axum/XSS.expected @@ -1,4 +1,24 @@ #select +| main.rs:10:10:10:21 | html_content | main.rs:15:51:15:53 | get | main.rs:10:10:10:21 | html_content | Cross-site scripting vulnerability due to a $@. | main.rs:15:51:15:53 | get | user-provided value | edges +| main.rs:8:24:8:59 | ...: Query::<...> | main.rs:9:32:9:63 | MacroExpr | provenance | | +| main.rs:9:9:9:20 | html_content | main.rs:10:10:10:21 | html_content | provenance | | +| main.rs:9:32:9:63 | ...::format(...) | main.rs:9:32:9:63 | { ... } | provenance | | +| main.rs:9:32:9:63 | ...::must_use(...) | main.rs:9:9:9:20 | html_content | provenance | | +| main.rs:9:32:9:63 | MacroExpr | main.rs:9:32:9:63 | ...::format(...) | provenance | MaD:2 | +| main.rs:9:32:9:63 | { ... } | main.rs:9:32:9:63 | ...::must_use(...) | provenance | MaD:3 | +| main.rs:15:51:15:53 | get | main.rs:8:24:8:59 | ...: Query::<...> | provenance | Src:MaD:1 | +models +| 1 | Source: axum::routing::method_routing::get; Argument[0].Parameter[0..7]; remote | +| 2 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 3 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes +| main.rs:8:24:8:59 | ...: Query::<...> | semmle.label | ...: Query::<...> | +| main.rs:9:9:9:20 | html_content | semmle.label | html_content | +| main.rs:9:32:9:63 | ...::format(...) | semmle.label | ...::format(...) | +| main.rs:9:32:9:63 | ...::must_use(...) | semmle.label | ...::must_use(...) | +| main.rs:9:32:9:63 | MacroExpr | semmle.label | MacroExpr | +| main.rs:9:32:9:63 | { ... } | semmle.label | { ... } | +| main.rs:10:10:10:21 | html_content | semmle.label | html_content | +| main.rs:15:51:15:53 | get | semmle.label | get | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-079/axum/main.rs b/rust/ql/test/query-tests/security/CWE-079/axum/main.rs index 9379302a318..27807c5883d 100644 --- a/rust/ql/test/query-tests/security/CWE-079/axum/main.rs +++ b/rust/ql/test/query-tests/security/CWE-079/axum/main.rs @@ -7,12 +7,12 @@ struct GreetingParams { async fn greet_handler(Query(params): Query) -> Html { let html_content = format!("

Hello, {}!

", params.name); - Html(html_content) // $ MISSING: Alert[rust/xss] + Html(html_content) // $ Alert[rust/xss]=greet } #[tokio::main] pub async fn main() { - let app = Router::<()>::new().route("/greet", get(greet_handler)); + let app = Router::<()>::new().route("/greet", get(greet_handler)); // $ Source=greet let listener = tokio::net::TcpListener::bind("127.0.0.1:3000") .await .unwrap(); diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index 34a867e0917..f957ba46e0f 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -1,30 +1,3 @@ -multipleCallTargets -| mysql.rs:15:24:15:39 | ...::from(...) | -| mysql.rs:16:26:16:85 | ...::from(...) | -| mysql.rs:18:13:18:66 | ...::from(...) | -| mysql.rs:19:30:19:83 | ...::from(...) | -| mysql.rs:100:24:100:39 | ...::from(...) | -| mysql.rs:101:26:101:85 | ...::from(...) | -| mysql.rs:103:13:103:66 | ...::from(...) | -| mysql.rs:104:30:104:83 | ...::from(...) | -| sqlx.rs:46:24:46:44 | ...::from(...) | -| sqlx.rs:47:56:47:76 | ...::from(...) | -| sqlx.rs:48:97:48:117 | ...::from(...) | -| sqlx.rs:50:24:50:83 | ...::from(...) | -| sqlx.rs:51:24:51:77 | ...::from(...) | -| sqlx.rs:55:26:55:79 | ...::from(...) | -| sqlx.rs:61:28:61:81 | ...::from(...) | -| sqlx.rs:99:24:99:44 | ...::from(...) | -| sqlx.rs:100:97:100:117 | ...::from(...) | -| sqlx.rs:101:24:101:77 | ...::from(...) | -| sqlx.rs:102:26:102:79 | ...::from(...) | -| sqlx.rs:103:28:103:81 | ...::from(...) | -| sqlx.rs:172:24:172:44 | ...::from(...) | -| sqlx.rs:173:97:173:117 | ...::from(...) | -| sqlx.rs:174:24:174:77 | ...::from(...) | -| sqlx.rs:175:26:175:79 | ...::from(...) | -| sqlx.rs:176:28:176:82 | ...::from(...) | -| sqlx.rs:202:57:202:85 | ...::from(...) | multiplePathResolutions | mysql.rs:5:37:5:74 | Result::<...> | | mysql.rs:26:20:26:44 | Result::<...> | diff --git a/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index c25043e0ef6..00000000000 --- a/rust/ql/test/query-tests/security/CWE-117/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,2 +0,0 @@ -multipleCallTargets -| main.rs:9:43:9:63 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index 078bce75133..580c9cd8202 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -1,23 +1,2 @@ -multipleCallTargets -| test_storage.rs:13:10:13:33 | ...::from(...) | -| test_storage.rs:17:10:17:35 | ...::from(...) | -| test_storage.rs:21:10:21:35 | ...::from(...) | -| test_storage.rs:25:10:25:32 | ...::from(...) | -| test_storage.rs:29:10:29:35 | ...::from(...) | +multipleResolvedTargets | test_storage.rs:36:45:36:57 | text.as_ref() | -| test_storage.rs:68:25:68:74 | ...::from(...) | -| test_storage.rs:69:25:69:76 | ...::from(...) | -| test_storage.rs:70:25:70:82 | ...::from(...) | -| test_storage.rs:71:25:71:79 | ...::from(...) | -| test_storage.rs:72:25:72:70 | ...::from(...) | -| test_storage.rs:73:25:73:67 | ...::from(...) | -| test_storage.rs:75:25:75:65 | ...::from(...) | -| test_storage.rs:76:25:76:65 | ...::from(...) | -| test_storage.rs:78:25:78:65 | ...::from(...) | -| test_storage.rs:79:25:79:65 | ...::from(...) | -| test_storage.rs:80:25:80:70 | ...::from(...) | -| test_storage.rs:81:25:81:72 | ...::from(...) | -| test_storage.rs:82:26:82:77 | ...::from(...) | -| test_storage.rs:188:29:188:86 | ...::from(...) | -| test_storage.rs:189:28:189:82 | ...::from(...) | -| test_storage.rs:190:28:190:81 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected index ba7a5c3e50b..4f4cc63cb26 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -49,118 +49,117 @@ | test_logging.rs:223:13:223:28 | ...::assert_failed | test_logging.rs:223:52:223:59 | password | test_logging.rs:223:13:223:28 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:223:52:223:59 | password | password | | test_logging.rs:226:13:226:28 | ...::assert_failed | test_logging.rs:226:52:226:59 | password | test_logging.rs:226:13:226:28 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:226:52:226:59 | password | password | | test_logging.rs:229:23:229:28 | expect | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:23:229:28 | expect | This operation writes $@ to a log file. | test_logging.rs:229:54:229:61 | password | password | -| test_logging.rs:229:23:229:28 | expect | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:23:229:28 | expect | This operation writes $@ to a log file. | test_logging.rs:229:54:229:61 | password | password | | test_logging.rs:242:10:242:14 | write | test_logging.rs:242:42:242:49 | password | test_logging.rs:242:10:242:14 | write | This operation writes $@ to a log file. | test_logging.rs:242:42:242:49 | password | password | | test_logging.rs:245:10:245:18 | write_all | test_logging.rs:245:46:245:53 | password | test_logging.rs:245:10:245:18 | write_all | This operation writes $@ to a log file. | test_logging.rs:245:46:245:53 | password | password | | test_logging.rs:248:9:248:13 | write | test_logging.rs:248:41:248:48 | password | test_logging.rs:248:9:248:13 | write | This operation writes $@ to a log file. | test_logging.rs:248:41:248:48 | password | password | | test_logging.rs:251:9:251:13 | write | test_logging.rs:251:41:251:48 | password | test_logging.rs:251:9:251:13 | write | This operation writes $@ to a log file. | test_logging.rs:251:41:251:48 | password | password | edges -| test_logging.rs:42:12:42:35 | MacroExpr | test_logging.rs:42:5:42:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:42:12:42:35 | MacroExpr | test_logging.rs:42:5:42:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:42:28:42:35 | password | test_logging.rs:42:12:42:35 | MacroExpr | provenance | | -| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:12:43:35 | MacroExpr | provenance | | -| test_logging.rs:44:11:44:34 | MacroExpr | test_logging.rs:44:5:44:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:44:11:44:34 | MacroExpr | test_logging.rs:44:5:44:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:44:27:44:34 | password | test_logging.rs:44:11:44:34 | MacroExpr | provenance | | -| test_logging.rs:45:12:45:35 | MacroExpr | test_logging.rs:45:5:45:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:45:12:45:35 | MacroExpr | test_logging.rs:45:5:45:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:45:28:45:35 | password | test_logging.rs:45:12:45:35 | MacroExpr | provenance | | -| test_logging.rs:46:11:46:34 | MacroExpr | test_logging.rs:46:5:46:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:46:11:46:34 | MacroExpr | test_logging.rs:46:5:46:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:46:27:46:34 | password | test_logging.rs:46:11:46:34 | MacroExpr | provenance | | -| test_logging.rs:47:24:47:47 | MacroExpr | test_logging.rs:47:5:47:8 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:47:24:47:47 | MacroExpr | test_logging.rs:47:5:47:8 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:47:40:47:47 | password | test_logging.rs:47:24:47:47 | MacroExpr | provenance | | -| test_logging.rs:52:12:52:35 | MacroExpr | test_logging.rs:52:5:52:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:52:12:52:35 | MacroExpr | test_logging.rs:52:5:52:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:52:28:52:35 | password | test_logging.rs:52:12:52:35 | MacroExpr | provenance | | -| test_logging.rs:54:12:54:48 | MacroExpr | test_logging.rs:54:5:54:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:54:12:54:48 | MacroExpr | test_logging.rs:54:5:54:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:54:41:54:48 | password | test_logging.rs:54:12:54:48 | MacroExpr | provenance | | -| test_logging.rs:56:12:56:46 | MacroExpr | test_logging.rs:56:5:56:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:56:12:56:46 | MacroExpr | test_logging.rs:56:5:56:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:56:39:56:46 | password | test_logging.rs:56:12:56:46 | MacroExpr | provenance | | -| test_logging.rs:57:12:57:33 | MacroExpr | test_logging.rs:57:5:57:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:57:12:57:33 | MacroExpr | test_logging.rs:57:5:57:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:57:24:57:31 | password | test_logging.rs:57:12:57:33 | MacroExpr | provenance | | -| test_logging.rs:58:12:58:35 | MacroExpr | test_logging.rs:58:5:58:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:58:12:58:35 | MacroExpr | test_logging.rs:58:5:58:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:58:24:58:31 | password | test_logging.rs:58:12:58:35 | MacroExpr | provenance | | -| test_logging.rs:60:30:60:53 | MacroExpr | test_logging.rs:60:5:60:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:60:30:60:53 | MacroExpr | test_logging.rs:60:5:60:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:60:46:60:53 | password | test_logging.rs:60:30:60:53 | MacroExpr | provenance | | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | test_logging.rs:61:5:61:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:61:20:61:28 | &password | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:61:20:61:28 | &password [&ref] | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password | provenance | Config | | test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password [&ref] | provenance | | -| test_logging.rs:65:24:65:47 | MacroExpr | test_logging.rs:65:5:65:8 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:65:24:65:47 | MacroExpr | test_logging.rs:65:5:65:8 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:65:40:65:47 | password | test_logging.rs:65:24:65:47 | MacroExpr | provenance | | -| test_logging.rs:67:42:67:65 | MacroExpr | test_logging.rs:67:5:67:8 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:67:42:67:65 | MacroExpr | test_logging.rs:67:5:67:8 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:67:58:67:65 | password | test_logging.rs:67:42:67:65 | MacroExpr | provenance | | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | test_logging.rs:68:5:68:8 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:68:18:68:26 | &password | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:68:18:68:26 | &password [&ref] | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password | provenance | Config | | test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password [&ref] | provenance | | -| test_logging.rs:72:23:72:46 | MacroExpr | test_logging.rs:72:5:72:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:72:23:72:46 | MacroExpr | test_logging.rs:72:5:72:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:72:39:72:46 | password | test_logging.rs:72:23:72:46 | MacroExpr | provenance | | -| test_logging.rs:74:41:74:64 | MacroExpr | test_logging.rs:74:5:74:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:74:41:74:64 | MacroExpr | test_logging.rs:74:5:74:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:74:57:74:64 | password | test_logging.rs:74:41:74:64 | MacroExpr | provenance | | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | test_logging.rs:75:5:75:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:75:20:75:28 | &password | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:75:20:75:28 | &password [&ref] | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password | provenance | Config | | test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password [&ref] | provenance | | -| test_logging.rs:76:23:76:46 | MacroExpr | test_logging.rs:76:5:76:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:76:23:76:46 | MacroExpr | test_logging.rs:76:5:76:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:76:39:76:46 | password | test_logging.rs:76:23:76:46 | MacroExpr | provenance | | -| test_logging.rs:82:20:82:43 | MacroExpr | test_logging.rs:82:5:82:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:82:20:82:43 | MacroExpr | test_logging.rs:82:5:82:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:82:36:82:43 | password | test_logging.rs:82:20:82:43 | MacroExpr | provenance | | -| test_logging.rs:84:38:84:61 | MacroExpr | test_logging.rs:84:5:84:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:84:38:84:61 | MacroExpr | test_logging.rs:84:5:84:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:84:54:84:61 | password | test_logging.rs:84:38:84:61 | MacroExpr | provenance | | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 Sink:MaD:13 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:13 Sink:MaD:13 Sink:MaD:13 | +| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 Sink:MaD:12 | +| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | test_logging.rs:85:5:85:10 | ...::log | provenance | MaD:12 Sink:MaD:12 Sink:MaD:12 | | test_logging.rs:85:20:85:28 | &password | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | provenance | | | test_logging.rs:85:20:85:28 | &password [&ref] | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | provenance | | | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | provenance | | | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | provenance | | | test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password | provenance | Config | | test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password [&ref] | provenance | | -| test_logging.rs:86:20:86:43 | MacroExpr | test_logging.rs:86:5:86:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:86:20:86:43 | MacroExpr | test_logging.rs:86:5:86:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:86:36:86:43 | password | test_logging.rs:86:20:86:43 | MacroExpr | provenance | | | test_logging.rs:93:9:93:10 | m1 | test_logging.rs:94:11:94:28 | MacroExpr | provenance | | | test_logging.rs:93:14:93:22 | &password | test_logging.rs:93:9:93:10 | m1 | provenance | | | test_logging.rs:93:15:93:22 | password | test_logging.rs:93:14:93:22 | &password | provenance | Config | -| test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:96:9:96:10 | m2 | test_logging.rs:97:11:97:18 | MacroExpr | provenance | | | test_logging.rs:96:14:96:49 | ... + ... | test_logging.rs:96:9:96:10 | m2 | provenance | | -| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:18 | | test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:17 | -| test_logging.rs:96:41:96:49 | &password [&ref] | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:17 | +| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:16 | +| test_logging.rs:96:41:96:49 | &password [&ref] | test_logging.rs:96:14:96:49 | ... + ... | provenance | MaD:16 | | test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password | provenance | Config | | test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password [&ref] | provenance | | -| test_logging.rs:97:11:97:18 | MacroExpr | test_logging.rs:97:5:97:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:97:11:97:18 | MacroExpr | test_logging.rs:97:5:97:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:99:9:99:10 | m3 | test_logging.rs:100:11:100:18 | MacroExpr | provenance | | | test_logging.rs:99:22:99:45 | ...::format(...) | test_logging.rs:99:22:99:45 | { ... } | provenance | | | test_logging.rs:99:22:99:45 | ...::must_use(...) | test_logging.rs:99:9:99:10 | m3 | provenance | | -| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:99:38:99:45 | password | test_logging.rs:99:22:99:45 | MacroExpr | provenance | | -| test_logging.rs:100:11:100:18 | MacroExpr | test_logging.rs:100:5:100:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | -| test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:100:11:100:18 | MacroExpr | test_logging.rs:100:5:100:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:12:118:41 | MacroExpr | provenance | | | test_logging.rs:129:9:129:10 | t1 [tuple.1] | test_logging.rs:131:28:131:29 | t1 [tuple.1] | provenance | | | test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | test_logging.rs:129:9:129:10 | t1 [tuple.1] | provenance | | | test_logging.rs:129:25:129:32 | password | test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | provenance | | -| test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:10 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:10 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:131:28:131:29 | t1 [tuple.1] | test_logging.rs:131:28:131:31 | t1.1 | provenance | | | test_logging.rs:131:28:131:31 | t1.1 | test_logging.rs:131:12:131:31 | MacroExpr | provenance | | -| test_logging.rs:141:11:141:37 | MacroExpr | test_logging.rs:141:5:141:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:141:11:141:37 | MacroExpr | test_logging.rs:141:5:141:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:141:27:141:37 | s1.password | test_logging.rs:141:11:141:37 | MacroExpr | provenance | | -| test_logging.rs:151:11:151:37 | MacroExpr | test_logging.rs:151:5:151:9 | ...::log | provenance | MaD:12 Sink:MaD:12 | +| test_logging.rs:151:11:151:37 | MacroExpr | test_logging.rs:151:5:151:9 | ...::log | provenance | MaD:11 Sink:MaD:11 | | test_logging.rs:151:27:151:37 | s2.password | test_logging.rs:151:11:151:37 | MacroExpr | provenance | | | test_logging.rs:176:33:176:79 | &... | test_logging.rs:176:22:176:31 | log_expect | provenance | MaD:1 Sink:MaD:1 | | test_logging.rs:176:33:176:79 | &... [&ref] | test_logging.rs:176:22:176:31 | log_expect | provenance | MaD:1 Sink:MaD:1 | @@ -168,8 +167,8 @@ edges | test_logging.rs:176:34:176:79 | MacroExpr | test_logging.rs:176:33:176:79 | &... [&ref] | provenance | | | test_logging.rs:176:42:176:78 | ...::format(...) | test_logging.rs:176:42:176:78 | { ... } | provenance | | | test_logging.rs:176:42:176:78 | ...::must_use(...) | test_logging.rs:176:34:176:79 | MacroExpr | provenance | | -| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:176:70:176:78 | password2 | test_logging.rs:176:42:176:78 | MacroExpr | provenance | | | test_logging.rs:180:35:180:81 | &... | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:3 Sink:MaD:3 | | test_logging.rs:180:35:180:81 | &... [&ref] | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:3 Sink:MaD:3 | @@ -177,93 +176,84 @@ edges | test_logging.rs:180:36:180:81 | MacroExpr | test_logging.rs:180:35:180:81 | &... [&ref] | provenance | | | test_logging.rs:180:44:180:80 | ...::format(...) | test_logging.rs:180:44:180:80 | { ... } | provenance | | | test_logging.rs:180:44:180:80 | ...::must_use(...) | test_logging.rs:180:36:180:81 | MacroExpr | provenance | | -| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:180:72:180:80 | password2 | test_logging.rs:180:44:180:80 | MacroExpr | provenance | | | test_logging.rs:183:9:183:19 | err_result2 [Err] | test_logging.rs:184:13:184:23 | err_result2 [Err] | provenance | | | test_logging.rs:183:47:183:68 | Err(...) [Err] | test_logging.rs:183:9:183:19 | err_result2 [Err] | provenance | | -| test_logging.rs:183:51:183:59 | password2 | test_logging.rs:183:51:183:67 | password2.clone() | provenance | MaD:16 | +| test_logging.rs:183:51:183:59 | password2 | test_logging.rs:183:51:183:67 | password2.clone() | provenance | MaD:15 | | test_logging.rs:183:51:183:67 | password2.clone() | test_logging.rs:183:47:183:68 | Err(...) [Err] | provenance | | | test_logging.rs:184:13:184:23 | err_result2 [Err] | test_logging.rs:184:25:184:34 | log_expect | provenance | MaD:4 Sink:MaD:4 | | test_logging.rs:187:9:187:19 | err_result3 [Err] | test_logging.rs:188:13:188:23 | err_result3 [Err] | provenance | | | test_logging.rs:187:47:187:60 | Err(...) [Err] | test_logging.rs:187:9:187:19 | err_result3 [Err] | provenance | | | test_logging.rs:187:51:187:59 | password2 | test_logging.rs:187:47:187:60 | Err(...) [Err] | provenance | | | test_logging.rs:188:13:188:23 | err_result3 [Err] | test_logging.rs:188:25:188:34 | log_unwrap | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:192:12:192:37 | MacroExpr | test_logging.rs:192:5:192:10 | ...::_print | provenance | MaD:15 Sink:MaD:15 | +| test_logging.rs:192:12:192:37 | MacroExpr | test_logging.rs:192:5:192:10 | ...::_print | provenance | MaD:14 Sink:MaD:14 | | test_logging.rs:192:30:192:37 | password | test_logging.rs:192:12:192:37 | MacroExpr | provenance | | -| test_logging.rs:193:14:193:37 | MacroExpr | test_logging.rs:193:5:193:12 | ...::_print | provenance | MaD:15 Sink:MaD:15 | +| test_logging.rs:193:14:193:37 | MacroExpr | test_logging.rs:193:5:193:12 | ...::_print | provenance | MaD:14 Sink:MaD:14 | | test_logging.rs:193:30:193:37 | password | test_logging.rs:193:14:193:37 | MacroExpr | provenance | | -| test_logging.rs:194:13:194:38 | MacroExpr | test_logging.rs:194:5:194:11 | ...::_eprint | provenance | MaD:14 Sink:MaD:14 | +| test_logging.rs:194:13:194:38 | MacroExpr | test_logging.rs:194:5:194:11 | ...::_eprint | provenance | MaD:13 Sink:MaD:13 | | test_logging.rs:194:31:194:38 | password | test_logging.rs:194:13:194:38 | MacroExpr | provenance | | -| test_logging.rs:195:15:195:38 | MacroExpr | test_logging.rs:195:5:195:13 | ...::_eprint | provenance | MaD:14 Sink:MaD:14 | +| test_logging.rs:195:15:195:38 | MacroExpr | test_logging.rs:195:5:195:13 | ...::_eprint | provenance | MaD:13 Sink:MaD:13 | | test_logging.rs:195:31:195:38 | password | test_logging.rs:195:15:195:38 | MacroExpr | provenance | | -| test_logging.rs:199:20:199:43 | MacroExpr | test_logging.rs:199:13:199:18 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:199:20:199:43 | MacroExpr | test_logging.rs:199:13:199:18 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:199:36:199:43 | password | test_logging.rs:199:20:199:43 | MacroExpr | provenance | | -| test_logging.rs:202:19:202:42 | MacroExpr | test_logging.rs:202:13:202:17 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:202:19:202:42 | MacroExpr | test_logging.rs:202:13:202:17 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:202:35:202:42 | password | test_logging.rs:202:19:202:42 | MacroExpr | provenance | | -| test_logging.rs:205:28:205:51 | MacroExpr | test_logging.rs:205:13:205:26 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:205:28:205:51 | MacroExpr | test_logging.rs:205:13:205:26 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:205:44:205:51 | password | test_logging.rs:205:28:205:51 | MacroExpr | provenance | | -| test_logging.rs:208:26:208:49 | MacroExpr | test_logging.rs:208:13:208:24 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:208:26:208:49 | MacroExpr | test_logging.rs:208:13:208:24 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:208:42:208:49 | password | test_logging.rs:208:26:208:49 | MacroExpr | provenance | | -| test_logging.rs:211:28:211:51 | MacroExpr | test_logging.rs:211:13:211:19 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:211:28:211:51 | MacroExpr | test_logging.rs:211:13:211:19 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:211:44:211:51 | password | test_logging.rs:211:28:211:51 | MacroExpr | provenance | | -| test_logging.rs:214:13:214:22 | ...::assert_failed [Some] | test_logging.rs:214:13:214:22 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:22 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:22 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:214:30:214:53 | MacroExpr | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | provenance | | | test_logging.rs:214:46:214:53 | password | test_logging.rs:214:30:214:53 | MacroExpr | provenance | | -| test_logging.rs:217:13:217:22 | ...::assert_failed [Some] | test_logging.rs:217:13:217:22 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:22 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:22 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:217:30:217:53 | MacroExpr | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | provenance | | | test_logging.rs:217:46:217:53 | password | test_logging.rs:217:30:217:53 | MacroExpr | provenance | | -| test_logging.rs:220:34:220:57 | MacroExpr | test_logging.rs:220:13:220:25 | ...::panic_fmt | provenance | MaD:11 Sink:MaD:11 | +| test_logging.rs:220:34:220:57 | MacroExpr | test_logging.rs:220:13:220:25 | ...::panic_fmt | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:220:50:220:57 | password | test_logging.rs:220:34:220:57 | MacroExpr | provenance | | -| test_logging.rs:223:13:223:28 | ...::assert_failed [Some] | test_logging.rs:223:13:223:28 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:28 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:28 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:223:36:223:59 | MacroExpr | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | provenance | | | test_logging.rs:223:52:223:59 | password | test_logging.rs:223:36:223:59 | MacroExpr | provenance | | -| test_logging.rs:226:13:226:28 | ...::assert_failed [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed | provenance | Sink:MaD:9 | | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:28 | ...::assert_failed [Some] | provenance | MaD:10 | | test_logging.rs:226:36:226:59 | MacroExpr | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | provenance | | | test_logging.rs:226:52:226:59 | password | test_logging.rs:226:36:226:59 | MacroExpr | provenance | | -| test_logging.rs:229:30:229:62 | MacroExpr | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | provenance | MaD:20 | -| test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | test_logging.rs:229:23:229:28 | expect | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:229:30:229:62 | MacroExpr | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | provenance | MaD:19 | | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | test_logging.rs:229:23:229:28 | expect | provenance | MaD:2 Sink:MaD:2 | | test_logging.rs:229:38:229:61 | ...::format(...) | test_logging.rs:229:38:229:61 | { ... } | provenance | | | test_logging.rs:229:38:229:61 | ...::must_use(...) | test_logging.rs:229:30:229:62 | MacroExpr | provenance | | -| test_logging.rs:229:38:229:61 | MacroExpr | test_logging.rs:229:38:229:61 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:229:38:229:61 | { ... } | test_logging.rs:229:38:229:61 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:229:38:229:61 | MacroExpr | test_logging.rs:229:38:229:61 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:229:38:229:61 | { ... } | test_logging.rs:229:38:229:61 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:229:54:229:61 | password | test_logging.rs:229:38:229:61 | MacroExpr | provenance | | -| test_logging.rs:242:16:242:50 | MacroExpr | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:242:16:242:50 | MacroExpr | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:242:16:242:61 | ... .as_bytes() [&ref] | test_logging.rs:242:10:242:14 | write | provenance | MaD:7 Sink:MaD:7 | | test_logging.rs:242:24:242:49 | ...::format(...) | test_logging.rs:242:24:242:49 | { ... } | provenance | | | test_logging.rs:242:24:242:49 | ...::must_use(...) | test_logging.rs:242:16:242:50 | MacroExpr | provenance | | -| test_logging.rs:242:24:242:49 | MacroExpr | test_logging.rs:242:24:242:49 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:242:24:242:49 | { ... } | test_logging.rs:242:24:242:49 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:242:24:242:49 | MacroExpr | test_logging.rs:242:24:242:49 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:242:24:242:49 | { ... } | test_logging.rs:242:24:242:49 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:242:42:242:49 | password | test_logging.rs:242:24:242:49 | MacroExpr | provenance | | -| test_logging.rs:245:20:245:54 | MacroExpr | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:245:20:245:54 | MacroExpr | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:245:20:245:65 | ... .as_bytes() [&ref] | test_logging.rs:245:10:245:18 | write_all | provenance | MaD:8 Sink:MaD:8 | | test_logging.rs:245:28:245:53 | ...::format(...) | test_logging.rs:245:28:245:53 | { ... } | provenance | | | test_logging.rs:245:28:245:53 | ...::must_use(...) | test_logging.rs:245:20:245:54 | MacroExpr | provenance | | -| test_logging.rs:245:28:245:53 | MacroExpr | test_logging.rs:245:28:245:53 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:245:28:245:53 | { ... } | test_logging.rs:245:28:245:53 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:245:28:245:53 | MacroExpr | test_logging.rs:245:28:245:53 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:245:28:245:53 | { ... } | test_logging.rs:245:28:245:53 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:245:46:245:53 | password | test_logging.rs:245:28:245:53 | MacroExpr | provenance | | -| test_logging.rs:248:15:248:49 | MacroExpr | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:248:15:248:49 | MacroExpr | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:248:15:248:60 | ... .as_bytes() [&ref] | test_logging.rs:248:9:248:13 | write | provenance | MaD:7 Sink:MaD:7 | | test_logging.rs:248:23:248:48 | ...::format(...) | test_logging.rs:248:23:248:48 | { ... } | provenance | | | test_logging.rs:248:23:248:48 | ...::must_use(...) | test_logging.rs:248:15:248:49 | MacroExpr | provenance | | -| test_logging.rs:248:23:248:48 | MacroExpr | test_logging.rs:248:23:248:48 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:248:23:248:48 | { ... } | test_logging.rs:248:23:248:48 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:248:23:248:48 | MacroExpr | test_logging.rs:248:23:248:48 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:248:23:248:48 | { ... } | test_logging.rs:248:23:248:48 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:248:41:248:48 | password | test_logging.rs:248:23:248:48 | MacroExpr | provenance | | -| test_logging.rs:251:15:251:49 | MacroExpr | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | provenance | MaD:19 | +| test_logging.rs:251:15:251:49 | MacroExpr | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | provenance | MaD:18 | | test_logging.rs:251:15:251:60 | ... .as_bytes() [&ref] | test_logging.rs:251:9:251:13 | write | provenance | MaD:6 Sink:MaD:6 | | test_logging.rs:251:23:251:48 | ...::format(...) | test_logging.rs:251:23:251:48 | { ... } | provenance | | | test_logging.rs:251:23:251:48 | ...::must_use(...) | test_logging.rs:251:15:251:49 | MacroExpr | provenance | | -| test_logging.rs:251:23:251:48 | MacroExpr | test_logging.rs:251:23:251:48 | ...::format(...) | provenance | MaD:21 | -| test_logging.rs:251:23:251:48 | { ... } | test_logging.rs:251:23:251:48 | ...::must_use(...) | provenance | MaD:22 | +| test_logging.rs:251:23:251:48 | MacroExpr | test_logging.rs:251:23:251:48 | ...::format(...) | provenance | MaD:20 | +| test_logging.rs:251:23:251:48 | { ... } | test_logging.rs:251:23:251:48 | ...::must_use(...) | provenance | MaD:21 | | test_logging.rs:251:41:251:48 | password | test_logging.rs:251:23:251:48 | MacroExpr | provenance | | models | 1 | Sink: ::log_expect; Argument[0]; log-injection | @@ -275,19 +265,18 @@ models | 7 | Sink: ::write; Argument[0]; log-injection | | 8 | Sink: ::write_all; Argument[0]; log-injection | | 9 | Sink: core::panicking::assert_failed; Argument[3].Field[core::option::Option::Some(0)]; log-injection | -| 10 | Sink: core::panicking::assert_failed; Argument[3]; log-injection | -| 11 | Sink: core::panicking::panic_fmt; Argument[0]; log-injection | -| 12 | Sink: log::__private_api::log; Argument[1]; log-injection | -| 13 | Sink: log::__private_api::log; Argument[3]; log-injection | -| 14 | Sink: std::io::stdio::_eprint; Argument[0]; log-injection | -| 15 | Sink: std::io::stdio::_print; Argument[0]; log-injection | -| 16 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | -| 17 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 18 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 19 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | -| 20 | Summary: ::as_str; Argument[self]; ReturnValue; value | -| 21 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | -| 22 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 10 | Sink: core::panicking::panic_fmt; Argument[0]; log-injection | +| 11 | Sink: log::__private_api::log; Argument[1]; log-injection | +| 12 | Sink: log::__private_api::log; Argument[3]; log-injection | +| 13 | Sink: std::io::stdio::_eprint; Argument[0]; log-injection | +| 14 | Sink: std::io::stdio::_print; Argument[0]; log-injection | +| 15 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | +| 16 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | +| 17 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | +| 18 | Summary: ::as_bytes; Argument[self]; ReturnValue; value | +| 19 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 20 | Summary: alloc::fmt::format; Argument[0]; ReturnValue; taint | +| 21 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | nodes | test_logging.rs:42:5:42:10 | ...::log | semmle.label | ...::log | | test_logging.rs:42:12:42:35 | MacroExpr | semmle.label | MacroExpr | @@ -474,12 +463,10 @@ nodes | test_logging.rs:211:28:211:51 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:211:44:211:51 | password | semmle.label | password | | test_logging.rs:214:13:214:22 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:214:13:214:22 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:214:30:214:53 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:214:46:214:53 | password | semmle.label | password | | test_logging.rs:217:13:217:22 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:217:13:217:22 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:217:30:217:53 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:217:46:217:53 | password | semmle.label | password | @@ -487,17 +474,14 @@ nodes | test_logging.rs:220:34:220:57 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:220:50:220:57 | password | semmle.label | password | | test_logging.rs:223:13:223:28 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:223:13:223:28 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:223:36:223:59 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:223:52:223:59 | password | semmle.label | password | | test_logging.rs:226:13:226:28 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:226:13:226:28 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | | test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | | test_logging.rs:226:36:226:59 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:226:52:226:59 | password | semmle.label | password | | test_logging.rs:229:23:229:28 | expect | semmle.label | expect | -| test_logging.rs:229:23:229:28 | expect | semmle.label | expect | | test_logging.rs:229:30:229:62 | MacroExpr | semmle.label | MacroExpr | | test_logging.rs:229:30:229:71 | ... .as_str() [&ref] | semmle.label | ... .as_str() [&ref] | | test_logging.rs:229:38:229:61 | ...::format(...) | semmle.label | ...::format(...) | diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected index b9925a323cc..18400b7ab59 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/CONSISTENCY/PathResolutionConsistency.expected @@ -1,2 +1,2 @@ -multipleCallTargets +multipleResolvedTargets | test_cipher.rs:114:23:114:50 | ...::new(...) | diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock index 708b79ed46d..a47021d54b4 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/Cargo.lock @@ -76,6 +76,15 @@ dependencies = [ "cipher", ] +[[package]] +name = "ecb" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a8bfa975b1aec2145850fcaa1c6fe269a16578c44705a532ae3edc92b8881c7" +dependencies = [ + "cipher", +] + [[package]] name = "generic-array" version = "0.14.7" @@ -146,6 +155,7 @@ dependencies = [ "cbc", "cipher", "des", + "ecb", "rabbit", "rc2", "rc4", diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml index 5a3cf0cab12..139cb084be2 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/options.yml @@ -8,3 +8,4 @@ qltest_dependencies: - rc2 = { version = "0.8.1" } - rc5 = { version = "0.0.1" } - cbc = { version = "0.1.2" } + - ecb = { version = "0.1.2" } diff --git a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs index 61471ac99ec..17db0f9ceb1 100644 --- a/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs +++ b/rust/ql/test/query-tests/security/CWE-327/BrokenCryptoAlgorithm/test_cipher.rs @@ -145,3 +145,33 @@ fn test_cbc( let des_cipher4 = cbc::Encryptor::::new(key.into(), iv.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] _ = des_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); } + +type MyAesEcbEncryptor = ecb::Encryptor; + +fn test_ecb( + key: &[u8], key128: &[u8;16], + input: &[u8], data: &mut [u8] +) { + let data_len = data.len(); + + // aes with ECB (weak block mode) + let aes_cipher1 = ecb::Encryptor::::new(key128.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); + + let aes_cipher2 = MyAesEcbEncryptor::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher2.encrypt_padded_mut::(data, data_len).unwrap(); + + let aes_cipher3 = ecb::Encryptor::::new_from_slice(&key).unwrap(); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher3.encrypt_padded_mut::(data, data_len).unwrap(); + + let aes_cipher4 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = aes_cipher4.encrypt_padded_b2b_mut::(input, data).unwrap(); + + // des with ECB (broken cipher + weak block mode) + let des_cipher1 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = des_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); + + // rc2 with ECB (broken cipher + weak block mode) + let rc2_cipher1 = ecb::Encryptor::::new(key.into()); // $ MISSING: Alert[rust/weak-cryptographic-algorithm] + _ = rc2_cipher1.encrypt_padded_mut::(data, data_len).unwrap(); +} diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected index 5f819dee521..69573c73857 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessAfterLifetime.expected @@ -27,24 +27,6 @@ edges | deallocation.rs:242:6:242:7 | p1 | deallocation.rs:245:14:245:15 | p1 | provenance | | | deallocation.rs:242:6:242:7 | p1 | deallocation.rs:252:14:252:15 | p1 | provenance | | | deallocation.rs:242:30:242:38 | &raw const my_buffer | deallocation.rs:242:6:242:7 | p1 | provenance | | -| deallocation.rs:322:28:322:43 | ...: ... | deallocation.rs:324:18:324:20 | ptr | provenance | | -| deallocation.rs:334:27:334:42 | ...: ... | deallocation.rs:342:18:342:20 | ptr | provenance | | -| deallocation.rs:351:7:351:10 | ptr1 | deallocation.rs:354:4:354:7 | ptr1 | provenance | | -| deallocation.rs:351:7:351:10 | ptr1 | deallocation.rs:354:4:354:7 | ptr1 | provenance | | -| deallocation.rs:351:14:351:33 | &raw mut ... | deallocation.rs:351:7:351:10 | ptr1 | provenance | | -| deallocation.rs:352:7:352:10 | ptr2 | deallocation.rs:355:4:355:7 | ptr2 | provenance | | -| deallocation.rs:352:7:352:10 | ptr2 | deallocation.rs:355:4:355:7 | ptr2 | provenance | | -| deallocation.rs:352:14:352:33 | &raw mut ... | deallocation.rs:352:7:352:10 | ptr2 | provenance | | -| deallocation.rs:354:4:354:7 | ptr1 | deallocation.rs:357:27:357:30 | ptr1 | provenance | | -| deallocation.rs:355:4:355:7 | ptr2 | deallocation.rs:359:26:359:29 | ptr2 | provenance | | -| deallocation.rs:357:27:357:30 | ptr1 | deallocation.rs:322:28:322:43 | ...: ... | provenance | | -| deallocation.rs:359:26:359:29 | ptr2 | deallocation.rs:334:27:334:42 | ...: ... | provenance | | -| deallocation.rs:370:6:370:9 | ptr1 | deallocation.rs:373:13:373:16 | ptr1 | provenance | | -| deallocation.rs:370:6:370:9 | ptr1 | deallocation.rs:381:13:381:16 | ptr1 | provenance | | -| deallocation.rs:370:13:370:28 | &raw mut ... | deallocation.rs:370:6:370:9 | ptr1 | provenance | | -| deallocation.rs:389:6:389:9 | ptr2 | deallocation.rs:392:13:392:16 | ptr2 | provenance | | -| deallocation.rs:389:6:389:9 | ptr2 | deallocation.rs:402:13:402:16 | ptr2 | provenance | | -| deallocation.rs:389:13:389:28 | &raw mut ... | deallocation.rs:389:6:389:9 | ptr2 | provenance | | | lifetime.rs:21:2:21:18 | return ... | lifetime.rs:54:11:54:30 | get_local_dangling(...) | provenance | | | lifetime.rs:21:9:21:18 | &my_local1 | lifetime.rs:21:2:21:18 | return ... | provenance | | | lifetime.rs:27:2:27:22 | return ... | lifetime.rs:55:11:55:34 | get_local_dangling_mut(...) | provenance | | @@ -80,15 +62,6 @@ edges | lifetime.rs:94:7:94:16 | &my_local1 | lifetime.rs:94:2:94:3 | p3 | provenance | | | lifetime.rs:119:15:119:24 | &my_local3 | lifetime.rs:91:17:91:30 | ...: ... | provenance | | | lifetime.rs:119:27:119:44 | &mut my_local_mut4 | lifetime.rs:91:33:91:44 | ...: ... | provenance | | -| lifetime.rs:127:2:127:24 | return ... | lifetime.rs:139:11:139:21 | get_const(...) | provenance | | -| lifetime.rs:127:9:127:24 | &MY_GLOBAL_CONST | lifetime.rs:127:2:127:24 | return ... | provenance | | -| lifetime.rs:134:3:134:30 | return ... | lifetime.rs:140:11:140:26 | get_static_mut(...) | provenance | | -| lifetime.rs:134:10:134:30 | &mut MY_GLOBAL_STATIC | lifetime.rs:134:3:134:30 | return ... | provenance | | -| lifetime.rs:139:6:139:7 | p1 | lifetime.rs:147:14:147:15 | p1 | provenance | | -| lifetime.rs:139:11:139:21 | get_const(...) | lifetime.rs:139:6:139:7 | p1 | provenance | | -| lifetime.rs:140:6:140:7 | p2 | lifetime.rs:148:14:148:15 | p2 | provenance | | -| lifetime.rs:140:6:140:7 | p2 | lifetime.rs:154:5:154:6 | p2 | provenance | | -| lifetime.rs:140:11:140:26 | get_static_mut(...) | lifetime.rs:140:6:140:7 | p2 | provenance | | | lifetime.rs:161:17:161:31 | ...: ... | lifetime.rs:164:13:164:15 | ptr | provenance | | | lifetime.rs:169:17:169:31 | ...: ... | lifetime.rs:172:13:172:15 | ptr | provenance | | | lifetime.rs:177:17:177:31 | ...: ... | lifetime.rs:180:13:180:15 | ptr | provenance | | @@ -106,7 +79,6 @@ edges | lifetime.rs:201:15:201:17 | ptr | lifetime.rs:177:17:177:31 | ...: ... | provenance | | | lifetime.rs:206:19:206:36 | ...: ... | lifetime.rs:216:16:216:21 | ptr_up | provenance | | | lifetime.rs:208:6:208:13 | ptr_ours | lifetime.rs:211:33:211:40 | ptr_ours | provenance | | -| lifetime.rs:208:6:208:13 | ptr_ours | lifetime.rs:217:18:217:25 | ptr_ours | provenance | | | lifetime.rs:208:6:208:13 | ptr_ours | lifetime.rs:225:2:225:16 | return ptr_ours | provenance | | | lifetime.rs:208:17:208:29 | &my_local_rec | lifetime.rs:208:6:208:13 | ptr_ours | provenance | | | lifetime.rs:211:7:211:14 | ptr_down | lifetime.rs:218:18:218:25 | ptr_down | provenance | | @@ -141,6 +113,16 @@ edges | lifetime.rs:305:15:305:37 | get_pointer_from_enum(...) | lifetime.rs:305:6:305:11 | result | provenance | | | lifetime.rs:313:10:313:29 | ...::Pointer(...) [Pointer] | lifetime.rs:313:27:313:28 | p2 | provenance | | | lifetime.rs:313:27:313:28 | p2 | lifetime.rs:314:23:314:24 | p2 | provenance | | +| lifetime.rs:332:6:332:13 | mut ref1 | lifetime.rs:338:9:338:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:332:17:332:22 | &enum1 | lifetime.rs:332:6:332:13 | mut ref1 | provenance | | +| lifetime.rs:336:3:336:6 | ref1 | lifetime.rs:338:9:338:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:336:10:336:15 | &inner | lifetime.rs:336:3:336:6 | ref1 | provenance | | +| lifetime.rs:338:9:338:35 | ...::Pointer(...) | lifetime.rs:339:28:339:30 | ptr | provenance | | +| lifetime.rs:348:6:348:13 | mut ref1 | lifetime.rs:354:9:354:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:348:17:348:22 | &enum1 | lifetime.rs:348:6:348:13 | mut ref1 | provenance | | +| lifetime.rs:352:3:352:6 | ref1 | lifetime.rs:354:9:354:35 | ...::Pointer(...) | provenance | | +| lifetime.rs:352:10:352:15 | &inner | lifetime.rs:352:3:352:6 | ref1 | provenance | | +| lifetime.rs:354:9:354:35 | ...::Pointer(...) | lifetime.rs:355:28:355:30 | ptr | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:388:15:388:16 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:391:15:391:16 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:399:6:399:7 | p1 | provenance | | @@ -150,41 +132,21 @@ edges | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:428:7:428:8 | p1 | provenance | | | lifetime.rs:383:3:383:4 | p1 | lifetime.rs:433:7:433:8 | p1 | provenance | | | lifetime.rs:383:31:383:37 | &raw mut my_pair | lifetime.rs:383:3:383:4 | p1 | provenance | | -| lifetime.rs:384:3:384:4 | p2 | lifetime.rs:394:14:394:15 | p2 | provenance | | -| lifetime.rs:384:3:384:4 | p2 | lifetime.rs:421:15:421:16 | p2 | provenance | | -| lifetime.rs:384:27:384:35 | &raw const ... | lifetime.rs:384:3:384:4 | p2 | provenance | | -| lifetime.rs:385:3:385:4 | p3 | lifetime.rs:395:14:395:15 | p3 | provenance | | -| lifetime.rs:385:3:385:4 | p3 | lifetime.rs:400:5:400:6 | p3 | provenance | | -| lifetime.rs:385:3:385:4 | p3 | lifetime.rs:400:5:400:6 | p3 | provenance | | -| lifetime.rs:385:31:385:39 | &raw mut ... | lifetime.rs:385:3:385:4 | p3 | provenance | | -| lifetime.rs:400:5:400:6 | p3 | lifetime.rs:422:15:422:16 | p3 | provenance | | -| lifetime.rs:400:5:400:6 | p3 | lifetime.rs:429:6:429:7 | p3 | provenance | | | lifetime.rs:442:6:442:7 | r1 | lifetime.rs:443:42:443:43 | r1 | provenance | | | lifetime.rs:442:17:442:23 | &my_val | lifetime.rs:442:6:442:7 | r1 | provenance | | | lifetime.rs:443:6:443:7 | p1 | lifetime.rs:446:13:446:14 | p1 | provenance | | | lifetime.rs:443:6:443:7 | p1 | lifetime.rs:450:2:450:10 | return p1 | provenance | | | lifetime.rs:443:23:443:44 | ...::from_ref(...) | lifetime.rs:443:6:443:7 | p1 | provenance | | -| lifetime.rs:443:42:443:43 | r1 | lifetime.rs:443:23:443:44 | ...::from_ref(...) | provenance | MaD:5 | +| lifetime.rs:443:42:443:43 | r1 | lifetime.rs:443:23:443:44 | ...::from_ref(...) | provenance | MaD:3 | | lifetime.rs:450:2:450:10 | return p1 | lifetime.rs:454:11:454:29 | get_ptr_from_ref(...) | provenance | | | lifetime.rs:450:2:450:10 | return p1 | lifetime.rs:460:13:460:31 | get_ptr_from_ref(...) | provenance | | | lifetime.rs:454:6:454:7 | p1 | lifetime.rs:459:13:459:14 | p1 | provenance | | | lifetime.rs:454:11:454:29 | get_ptr_from_ref(...) | lifetime.rs:454:6:454:7 | p1 | provenance | | | lifetime.rs:568:7:568:8 | p2 | lifetime.rs:572:14:572:15 | p2 | provenance | | | lifetime.rs:568:24:568:33 | &my_local2 | lifetime.rs:568:7:568:8 | p2 | provenance | | -| lifetime.rs:630:3:630:6 | str2 | lifetime.rs:633:15:633:18 | str2 | provenance | | -| lifetime.rs:630:3:630:6 | str2 | lifetime.rs:641:14:641:17 | str2 | provenance | | -| lifetime.rs:630:10:630:25 | &... | lifetime.rs:630:3:630:6 | str2 | provenance | | -| lifetime.rs:654:4:654:7 | str2 | lifetime.rs:655:22:655:25 | str2 | provenance | | -| lifetime.rs:654:11:654:35 | ... + ... | lifetime.rs:654:4:654:7 | str2 | provenance | | -| lifetime.rs:654:31:654:35 | &str1 | lifetime.rs:654:11:654:35 | ... + ... | provenance | MaD:2 | -| lifetime.rs:654:31:654:35 | &str1 | lifetime.rs:654:11:654:35 | ... + ... | provenance | MaD:1 | | lifetime.rs:655:4:655:7 | ref1 | lifetime.rs:659:15:659:18 | ref1 | provenance | | | lifetime.rs:655:4:655:7 | ref1 | lifetime.rs:667:14:667:17 | ref1 | provenance | | -| lifetime.rs:655:4:655:7 | ref1 [&ref] | lifetime.rs:659:15:659:18 | ref1 | provenance | | -| lifetime.rs:655:4:655:7 | ref1 [&ref] | lifetime.rs:667:14:667:17 | ref1 | provenance | | | lifetime.rs:655:11:655:25 | &raw const str2 | lifetime.rs:655:4:655:7 | ref1 | provenance | | -| lifetime.rs:655:11:655:25 | &raw const str2 [&ref] | lifetime.rs:655:4:655:7 | ref1 [&ref] | provenance | | -| lifetime.rs:655:22:655:25 | str2 | lifetime.rs:655:11:655:25 | &raw const str2 [&ref] | provenance | | | lifetime.rs:781:2:781:19 | return ... | lifetime.rs:785:11:785:41 | get_local_for_unsafe_function(...) | provenance | | | lifetime.rs:781:9:781:19 | &my_local10 | lifetime.rs:781:2:781:19 | return ... | provenance | | | lifetime.rs:785:6:785:7 | p1 | lifetime.rs:789:12:789:13 | p1 | provenance | | @@ -193,54 +155,26 @@ edges | lifetime.rs:798:9:798:12 | &val | lifetime.rs:798:2:798:12 | return ... | provenance | | | lifetime.rs:802:6:802:8 | ptr | lifetime.rs:808:23:808:25 | ptr | provenance | | | lifetime.rs:802:12:802:24 | get_pointer(...) | lifetime.rs:802:6:802:8 | ptr | provenance | | -| lifetime.rs:841:13:841:27 | ...: ... | lifetime.rs:843:12:843:14 | ptr | provenance | | -| lifetime.rs:851:6:851:8 | ptr | lifetime.rs:853:20:853:22 | ptr | provenance | | -| lifetime.rs:851:12:851:23 | &local_value | lifetime.rs:851:6:851:8 | ptr | provenance | | -| lifetime.rs:853:20:853:22 | ptr | lifetime.rs:841:13:841:27 | ...: ... | provenance | | | main.rs:18:9:18:10 | p1 [&ref] | main.rs:21:19:21:20 | p1 | provenance | | | main.rs:18:9:18:10 | p1 [&ref] | main.rs:29:19:29:20 | p1 | provenance | | | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | main.rs:18:9:18:10 | p1 [&ref] | provenance | | -| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:4 | +| main.rs:18:26:18:28 | &b1 | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | provenance | MaD:2 | | main.rs:44:9:44:10 | p2 [&ref] | main.rs:51:23:51:24 | p2 | provenance | | | main.rs:44:9:44:10 | p2 [&ref] | main.rs:64:23:64:24 | p2 | provenance | | | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | main.rs:44:9:44:10 | p2 [&ref] | provenance | | -| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:4 | +| main.rs:44:26:44:28 | &b2 | main.rs:44:14:44:29 | ...::as_ptr(...) [&ref] | provenance | MaD:2 | | main.rs:47:9:47:10 | p3 [&ref] | main.rs:52:23:52:24 | p3 | provenance | | | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | main.rs:47:9:47:10 | p3 [&ref] | provenance | | -| main.rs:47:30:47:36 | &mut b3 | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | provenance | MaD:3 | +| main.rs:47:30:47:36 | &mut b3 | main.rs:47:14:47:37 | ...::as_mut_ptr(...) [&ref] | provenance | MaD:1 | models -| 1 | Summary: <_ as core::ops::arith::Add>::add; Argument[0].Reference; ReturnValue; taint | -| 2 | Summary: <_ as core::ops::arith::Add>::add; Argument[0]; ReturnValue; taint | -| 3 | Summary: ::as_mut_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | -| 4 | Summary: ::as_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | -| 5 | Summary: core::ptr::from_ref; Argument[0]; ReturnValue; value | +| 1 | Summary: ::as_mut_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | +| 2 | Summary: ::as_ptr; Argument[0].Reference.Reference; ReturnValue.Reference; value | +| 3 | Summary: core::ptr::from_ref; Argument[0]; ReturnValue; value | nodes | deallocation.rs:242:6:242:7 | p1 | semmle.label | p1 | | deallocation.rs:242:30:242:38 | &raw const my_buffer | semmle.label | &raw const my_buffer | | deallocation.rs:245:14:245:15 | p1 | semmle.label | p1 | | deallocation.rs:252:14:252:15 | p1 | semmle.label | p1 | -| deallocation.rs:322:28:322:43 | ...: ... | semmle.label | ...: ... | -| deallocation.rs:324:18:324:20 | ptr | semmle.label | ptr | -| deallocation.rs:334:27:334:42 | ...: ... | semmle.label | ...: ... | -| deallocation.rs:342:18:342:20 | ptr | semmle.label | ptr | -| deallocation.rs:351:7:351:10 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:351:14:351:33 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:352:7:352:10 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:352:14:352:33 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:354:4:354:7 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:354:4:354:7 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:355:4:355:7 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:355:4:355:7 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:357:27:357:30 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:359:26:359:29 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:370:6:370:9 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:370:13:370:28 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:373:13:373:16 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:381:13:381:16 | ptr1 | semmle.label | ptr1 | -| deallocation.rs:389:6:389:9 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:389:13:389:28 | &raw mut ... | semmle.label | &raw mut ... | -| deallocation.rs:392:13:392:16 | ptr2 | semmle.label | ptr2 | -| deallocation.rs:402:13:402:16 | ptr2 | semmle.label | ptr2 | | lifetime.rs:21:2:21:18 | return ... | semmle.label | return ... | | lifetime.rs:21:9:21:18 | &my_local1 | semmle.label | &my_local1 | | lifetime.rs:27:2:27:22 | return ... | semmle.label | return ... | @@ -286,17 +220,6 @@ nodes | lifetime.rs:110:5:110:6 | p2 | semmle.label | p2 | | lifetime.rs:119:15:119:24 | &my_local3 | semmle.label | &my_local3 | | lifetime.rs:119:27:119:44 | &mut my_local_mut4 | semmle.label | &mut my_local_mut4 | -| lifetime.rs:127:2:127:24 | return ... | semmle.label | return ... | -| lifetime.rs:127:9:127:24 | &MY_GLOBAL_CONST | semmle.label | &MY_GLOBAL_CONST | -| lifetime.rs:134:3:134:30 | return ... | semmle.label | return ... | -| lifetime.rs:134:10:134:30 | &mut MY_GLOBAL_STATIC | semmle.label | &mut MY_GLOBAL_STATIC | -| lifetime.rs:139:6:139:7 | p1 | semmle.label | p1 | -| lifetime.rs:139:11:139:21 | get_const(...) | semmle.label | get_const(...) | -| lifetime.rs:140:6:140:7 | p2 | semmle.label | p2 | -| lifetime.rs:140:11:140:26 | get_static_mut(...) | semmle.label | get_static_mut(...) | -| lifetime.rs:147:14:147:15 | p1 | semmle.label | p1 | -| lifetime.rs:148:14:148:15 | p2 | semmle.label | p2 | -| lifetime.rs:154:5:154:6 | p2 | semmle.label | p2 | | lifetime.rs:161:17:161:31 | ...: ... | semmle.label | ...: ... | | lifetime.rs:164:13:164:15 | ptr | semmle.label | ptr | | lifetime.rs:169:17:169:31 | ...: ... | semmle.label | ...: ... | @@ -319,7 +242,6 @@ nodes | lifetime.rs:211:18:211:52 | access_ptr_rec(...) | semmle.label | access_ptr_rec(...) | | lifetime.rs:211:33:211:40 | ptr_ours | semmle.label | ptr_ours | | lifetime.rs:216:16:216:21 | ptr_up | semmle.label | ptr_up | -| lifetime.rs:217:18:217:25 | ptr_ours | semmle.label | ptr_ours | | lifetime.rs:218:18:218:25 | ptr_down | semmle.label | ptr_down | | lifetime.rs:225:2:225:16 | return ptr_ours | semmle.label | return ptr_ours | | lifetime.rs:230:6:230:14 | ptr_start | semmle.label | ptr_start | @@ -353,26 +275,27 @@ nodes | lifetime.rs:313:27:313:28 | p2 | semmle.label | p2 | | lifetime.rs:314:23:314:24 | p2 | semmle.label | p2 | | lifetime.rs:317:13:317:18 | result | semmle.label | result | +| lifetime.rs:332:6:332:13 | mut ref1 | semmle.label | mut ref1 | +| lifetime.rs:332:17:332:22 | &enum1 | semmle.label | &enum1 | +| lifetime.rs:336:3:336:6 | ref1 | semmle.label | ref1 | +| lifetime.rs:336:10:336:15 | &inner | semmle.label | &inner | +| lifetime.rs:338:9:338:35 | ...::Pointer(...) | semmle.label | ...::Pointer(...) | +| lifetime.rs:339:28:339:30 | ptr | semmle.label | ptr | +| lifetime.rs:348:6:348:13 | mut ref1 | semmle.label | mut ref1 | +| lifetime.rs:348:17:348:22 | &enum1 | semmle.label | &enum1 | +| lifetime.rs:352:3:352:6 | ref1 | semmle.label | ref1 | +| lifetime.rs:352:10:352:15 | &inner | semmle.label | &inner | +| lifetime.rs:354:9:354:35 | ...::Pointer(...) | semmle.label | ...::Pointer(...) | +| lifetime.rs:355:28:355:30 | ptr | semmle.label | ptr | | lifetime.rs:383:3:383:4 | p1 | semmle.label | p1 | | lifetime.rs:383:31:383:37 | &raw mut my_pair | semmle.label | &raw mut my_pair | -| lifetime.rs:384:3:384:4 | p2 | semmle.label | p2 | -| lifetime.rs:384:27:384:35 | &raw const ... | semmle.label | &raw const ... | -| lifetime.rs:385:3:385:4 | p3 | semmle.label | p3 | -| lifetime.rs:385:31:385:39 | &raw mut ... | semmle.label | &raw mut ... | | lifetime.rs:388:15:388:16 | p1 | semmle.label | p1 | | lifetime.rs:391:15:391:16 | p1 | semmle.label | p1 | -| lifetime.rs:394:14:394:15 | p2 | semmle.label | p2 | -| lifetime.rs:395:14:395:15 | p3 | semmle.label | p3 | | lifetime.rs:399:6:399:7 | p1 | semmle.label | p1 | -| lifetime.rs:400:5:400:6 | p3 | semmle.label | p3 | -| lifetime.rs:400:5:400:6 | p3 | semmle.label | p3 | | lifetime.rs:401:6:401:7 | p1 | semmle.label | p1 | | lifetime.rs:411:16:411:17 | p1 | semmle.label | p1 | | lifetime.rs:416:16:416:17 | p1 | semmle.label | p1 | -| lifetime.rs:421:15:421:16 | p2 | semmle.label | p2 | -| lifetime.rs:422:15:422:16 | p3 | semmle.label | p3 | | lifetime.rs:428:7:428:8 | p1 | semmle.label | p1 | -| lifetime.rs:429:6:429:7 | p3 | semmle.label | p3 | | lifetime.rs:433:7:433:8 | p1 | semmle.label | p1 | | lifetime.rs:442:6:442:7 | r1 | semmle.label | r1 | | lifetime.rs:442:17:442:23 | &my_val | semmle.label | &my_val | @@ -388,18 +311,8 @@ nodes | lifetime.rs:568:7:568:8 | p2 | semmle.label | p2 | | lifetime.rs:568:24:568:33 | &my_local2 | semmle.label | &my_local2 | | lifetime.rs:572:14:572:15 | p2 | semmle.label | p2 | -| lifetime.rs:630:3:630:6 | str2 | semmle.label | str2 | -| lifetime.rs:630:10:630:25 | &... | semmle.label | &... | -| lifetime.rs:633:15:633:18 | str2 | semmle.label | str2 | -| lifetime.rs:641:14:641:17 | str2 | semmle.label | str2 | -| lifetime.rs:654:4:654:7 | str2 | semmle.label | str2 | -| lifetime.rs:654:11:654:35 | ... + ... | semmle.label | ... + ... | -| lifetime.rs:654:31:654:35 | &str1 | semmle.label | &str1 | | lifetime.rs:655:4:655:7 | ref1 | semmle.label | ref1 | -| lifetime.rs:655:4:655:7 | ref1 [&ref] | semmle.label | ref1 [&ref] | | lifetime.rs:655:11:655:25 | &raw const str2 | semmle.label | &raw const str2 | -| lifetime.rs:655:11:655:25 | &raw const str2 [&ref] | semmle.label | &raw const str2 [&ref] | -| lifetime.rs:655:22:655:25 | str2 | semmle.label | str2 | | lifetime.rs:659:15:659:18 | ref1 | semmle.label | ref1 | | lifetime.rs:667:14:667:17 | ref1 | semmle.label | ref1 | | lifetime.rs:781:2:781:19 | return ... | semmle.label | return ... | @@ -412,11 +325,6 @@ nodes | lifetime.rs:802:6:802:8 | ptr | semmle.label | ptr | | lifetime.rs:802:12:802:24 | get_pointer(...) | semmle.label | get_pointer(...) | | lifetime.rs:808:23:808:25 | ptr | semmle.label | ptr | -| lifetime.rs:841:13:841:27 | ...: ... | semmle.label | ...: ... | -| lifetime.rs:843:12:843:14 | ptr | semmle.label | ptr | -| lifetime.rs:851:6:851:8 | ptr | semmle.label | ptr | -| lifetime.rs:851:12:851:23 | &local_value | semmle.label | &local_value | -| lifetime.rs:853:20:853:22 | ptr | semmle.label | ptr | | main.rs:18:9:18:10 | p1 [&ref] | semmle.label | p1 [&ref] | | main.rs:18:14:18:29 | ...::as_ptr(...) [&ref] | semmle.label | ...::as_ptr(...) [&ref] | | main.rs:18:26:18:28 | &b1 | semmle.label | &b1 | diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected b/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected index 6afe11ad012..d3b5456063f 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected @@ -10,7 +10,6 @@ | deallocation.rs:95:5:95:31 | ...::write::<...> | deallocation.rs:70:3:70:21 | ...::dealloc | deallocation.rs:95:5:95:31 | ...::write::<...> | This operation dereferences a pointer that may be $@. | deallocation.rs:70:3:70:21 | ...::dealloc | invalid | | deallocation.rs:115:13:115:18 | my_ptr | deallocation.rs:112:3:112:12 | ...::free | deallocation.rs:115:13:115:18 | my_ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:112:3:112:12 | ...::free | invalid | | deallocation.rs:130:14:130:15 | p1 | deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:130:14:130:15 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:123:23:123:40 | ...::dangling | invalid | -| deallocation.rs:130:14:130:15 | p1 | deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:130:14:130:15 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:123:23:123:40 | ...::dangling | invalid | | deallocation.rs:131:14:131:15 | p2 | deallocation.rs:124:21:124:42 | ...::dangling_mut | deallocation.rs:131:14:131:15 | p2 | This operation dereferences a pointer that may be $@. | deallocation.rs:124:21:124:42 | ...::dangling_mut | invalid | | deallocation.rs:132:14:132:15 | p3 | deallocation.rs:125:23:125:36 | ...::null | deallocation.rs:132:14:132:15 | p3 | This operation dereferences a pointer that may be $@. | deallocation.rs:125:23:125:36 | ...::null | invalid | | deallocation.rs:163:13:163:15 | ptr | deallocation.rs:159:9:159:26 | ...::null_mut | deallocation.rs:163:13:163:15 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:159:9:159:26 | ...::null_mut | invalid | @@ -27,8 +26,6 @@ | deallocation.rs:210:7:210:9 | ptr | deallocation.rs:207:9:207:26 | ...::null_mut | deallocation.rs:210:7:210:9 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:207:9:207:26 | ...::null_mut | invalid | | deallocation.rs:226:13:226:21 | const_ptr | deallocation.rs:219:15:219:32 | ...::null_mut | deallocation.rs:226:13:226:21 | const_ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:219:15:219:32 | ...::null_mut | invalid | | deallocation.rs:274:15:274:16 | p1 | deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:274:15:274:16 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:270:3:270:25 | ...::drop_in_place | invalid | -| deallocation.rs:274:15:274:16 | p1 | deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:274:15:274:16 | p1 | This operation dereferences a pointer that may be $@. | deallocation.rs:270:3:270:25 | ...::drop_in_place | invalid | -| deallocation.rs:342:18:342:20 | ptr | deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:342:18:342:20 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:336:3:336:25 | ...::drop_in_place | invalid | | deallocation.rs:342:18:342:20 | ptr | deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:342:18:342:20 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:336:3:336:25 | ...::drop_in_place | invalid | edges | deallocation.rs:20:3:20:21 | ...::dealloc | deallocation.rs:20:23:20:24 | [post] m1 | provenance | Src:MaD:3 MaD:3 | @@ -49,7 +46,6 @@ edges | deallocation.rs:112:14:112:40 | [post] my_ptr as ... | deallocation.rs:115:13:115:18 | my_ptr | provenance | | | deallocation.rs:123:6:123:7 | p1 | deallocation.rs:130:14:130:15 | p1 | provenance | | | deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:4 MaD:4 | -| deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:4 MaD:4 | | deallocation.rs:123:23:123:42 | ...::dangling(...) | deallocation.rs:123:6:123:7 | p1 | provenance | | | deallocation.rs:124:6:124:7 | p2 | deallocation.rs:131:14:131:15 | p2 | provenance | | | deallocation.rs:124:21:124:42 | ...::dangling_mut | deallocation.rs:124:21:124:44 | ...::dangling_mut(...) | provenance | Src:MaD:5 MaD:5 | @@ -83,10 +79,8 @@ edges | deallocation.rs:219:15:219:32 | ...::null_mut | deallocation.rs:219:15:219:34 | ...::null_mut(...) | provenance | Src:MaD:8 MaD:8 | | deallocation.rs:219:15:219:34 | ...::null_mut(...) | deallocation.rs:219:3:219:11 | const_ptr | provenance | | | deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:270:27:270:28 | [post] p1 | provenance | Src:MaD:6 MaD:6 | -| deallocation.rs:270:3:270:25 | ...::drop_in_place | deallocation.rs:270:27:270:28 | [post] p1 | provenance | Src:MaD:6 MaD:6 | | deallocation.rs:270:27:270:28 | [post] p1 | deallocation.rs:274:15:274:16 | p1 | provenance | | | deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:336:27:336:29 | [post] ptr | provenance | Src:MaD:6 MaD:6 | -| deallocation.rs:336:3:336:25 | ...::drop_in_place | deallocation.rs:336:27:336:29 | [post] ptr | provenance | Src:MaD:6 MaD:6 | | deallocation.rs:336:27:336:29 | [post] ptr | deallocation.rs:342:18:342:20 | ptr | provenance | | models | 1 | Sink: core::ptr::read; Argument[0]; pointer-access | @@ -120,7 +114,6 @@ nodes | deallocation.rs:115:13:115:18 | my_ptr | semmle.label | my_ptr | | deallocation.rs:123:6:123:7 | p1 | semmle.label | p1 | | deallocation.rs:123:23:123:40 | ...::dangling | semmle.label | ...::dangling | -| deallocation.rs:123:23:123:40 | ...::dangling | semmle.label | ...::dangling | | deallocation.rs:123:23:123:42 | ...::dangling(...) | semmle.label | ...::dangling(...) | | deallocation.rs:124:6:124:7 | p2 | semmle.label | p2 | | deallocation.rs:124:21:124:42 | ...::dangling_mut | semmle.label | ...::dangling_mut | @@ -160,11 +153,9 @@ nodes | deallocation.rs:219:15:219:34 | ...::null_mut(...) | semmle.label | ...::null_mut(...) | | deallocation.rs:226:13:226:21 | const_ptr | semmle.label | const_ptr | | deallocation.rs:270:3:270:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | -| deallocation.rs:270:3:270:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | | deallocation.rs:270:27:270:28 | [post] p1 | semmle.label | [post] p1 | | deallocation.rs:274:15:274:16 | p1 | semmle.label | p1 | | deallocation.rs:336:3:336:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | -| deallocation.rs:336:3:336:25 | ...::drop_in_place | semmle.label | ...::drop_in_place | | deallocation.rs:336:27:336:29 | [post] ptr | semmle.label | [post] ptr | | deallocation.rs:342:18:342:20 | ptr | semmle.label | ptr | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index ae227c22e5a..00000000000 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,6 +0,0 @@ -multipleCallTargets -| deallocation.rs:354:11:354:29 | ...::from(...) | -| deallocation.rs:355:11:355:29 | ...::from(...) | -| lifetime.rs:610:13:610:31 | ...::from(...) | -| lifetime.rs:611:13:611:31 | ...::from(...) | -| lifetime.rs:628:13:628:31 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-825/deallocation.rs b/rust/ql/test/query-tests/security/CWE-825/deallocation.rs index 073d03260b3..ce043d69fdd 100644 --- a/rust/ql/test/query-tests/security/CWE-825/deallocation.rs +++ b/rust/ql/test/query-tests/security/CWE-825/deallocation.rs @@ -403,3 +403,29 @@ pub fn test_vec_reserve() { println!(" v4 = {}", v4); // corrupt in practice } } + +// --- pointer to reference --- + +pub fn test_pointer_converted_to_reference() { + let layout = std::alloc::Layout::new::(); + let m3; + + // allocate + unsafe { + let m1 = std::alloc::alloc(layout); // *mut u8 + let m2 = m1 as *mut u128; // *mut u128 + m3 = &mut *m2; // &u128 + } + + *m3 = 1; // GOOD + println!(" v1 = {}", *m3); // GOOD + + // free + unsafe { + std::alloc::dealloc((&raw mut *m3) as *mut u8, layout); // $ MISSING: Source[rust/access-invalid-pointer]=dealloc + } + // (m1, m2, m3 are now dangling) + + // (this is corrupt in practice) + println!(" v2 = {} (!)", *m3); // $ MISSING: Alert[rust/access-invalid-pointer]=dealloc +} diff --git a/rust/ql/test/query-tests/security/CWE-825/main.rs b/rust/ql/test/query-tests/security/CWE-825/main.rs index 09a3d279c21..d14c5d463ec 100644 --- a/rust/ql/test/query-tests/security/CWE-825/main.rs +++ b/rust/ql/test/query-tests/security/CWE-825/main.rs @@ -143,6 +143,9 @@ fn main() { println!("test_vec_reserve:"); test_vec_reserve(); + println!("test_pointer_converted_to_reference:"); + test_pointer_converted_to_reference(); + // --- println!("test_local_dangling:"); diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 4d2cdee53ce..00000000000 --- a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,6 +0,0 @@ -multipleCallTargets -| main.rs:14:13:14:29 | ...::from(...) | -| main.rs:15:13:15:29 | ...::from(...) | -| unreachable.rs:165:20:165:42 | ...::from(...) | -| unreachable.rs:171:9:171:15 | ...::from(...) | -| unreachable.rs:177:17:177:25 | ...::from(...) | diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index 96173957278..8896e5809f2 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -6,6 +6,7 @@ class LabelableExpr(Expr): """ The base class for expressions that can be labeled (`LoopExpr`, `ForExpr`, `WhileExpr` or `BlockExpr`). """ + label: optional[Label] | child @@ -13,15 +14,22 @@ class LoopingExpr(LabelableExpr): """ The base class for expressions that loop (`LoopExpr`, `ForExpr` or `WhileExpr`). """ + loop_body: optional["BlockExpr"] | child -@annotate(Adt, replace_bases={AstNode: Item}) +@annotate(TypeItem, replace_bases={AstNode: Item}) class _: """ - An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + An item that defines a type. Either a `Struct`, `Enum`, or `Union`. """ + derive_macro_expansions: list[MacroItems] | child | rust.detach + attrs: list["Attr"] | child + generic_param_list: optional["GenericParamList"] | child + name: optional["Name"] | child + visibility: optional["Visibility"] | child + where_clause: optional["WhereClause"] | child @annotate(Module) @@ -95,8 +103,8 @@ class _: foo::bar; ``` """ - segment: _ | ql.db_table_name("path_segments_") | doc( - "last segment of this path") + + segment: _ | ql.db_table_name("path_segments_") | doc("last segment of this path") @annotate(GenericArgList) @@ -132,7 +140,9 @@ class PathExprBase(Expr): """ -@annotate(PathExpr, replace_bases={Expr: PathExprBase}, add_bases=(PathAstNode,), cfg=True) +@annotate( + PathExpr, replace_bases={Expr: PathExprBase}, add_bases=(PathAstNode,), cfg=True +) @qltest.test_with(Path) class _: """ @@ -144,6 +154,7 @@ class _: let z = ::foo; ``` """ + path: drop @@ -195,6 +206,7 @@ class _: } ``` """ + label: drop @@ -224,6 +236,7 @@ class _: }; ``` """ + label: drop loop_body: drop @@ -297,8 +310,10 @@ class _: } ``` """ + scrutinee: _ | doc( - "scrutinee (the expression being matched) of this match expression") + "scrutinee (the expression being matched) of this match expression" + ) @annotate(ContinueExpr, cfg=True) @@ -348,7 +363,7 @@ class _: 0; }; ``` - """ + """ @annotate(ReturnExpr, cfg=True) @@ -432,6 +447,7 @@ class _: Foo { a: m, .. } = second; ``` """ + path: drop @@ -579,6 +595,7 @@ class ArrayExpr(Expr): [1; 10]; ``` """ + exprs: list[Expr] | child attrs: list[Attr] | child @@ -591,6 +608,7 @@ class ArrayListExpr(ArrayExpr): [1, 2, 3]; ``` """ + __cfg__ = True @@ -602,6 +620,7 @@ class ArrayRepeatExpr(ArrayExpr): [1; 10]; ``` """ + __cfg__ = True repeat_operand: Expr | child @@ -741,6 +760,7 @@ class _: } ``` """ + path: drop @@ -784,6 +804,7 @@ class _: } ``` """ + path: drop @@ -831,6 +852,7 @@ class _: }; ``` """ + path: drop @@ -993,10 +1015,18 @@ class _: const X: i32 = 42; ``` """ - has_implementation: predicate | doc("this constant has an implementation") | desc(""" + + has_implementation: ( + predicate + | doc("this constant has an implementation") + | desc( + """ This is the same as `hasBody` for source code, but for library code (for which we always skip the body), this will hold when the body was present in the original code. - """) | rust.detach + """ + ) + | rust.detach + ) @annotate(ConstArg) @@ -1038,7 +1068,7 @@ class _: """ -@annotate(Enum, replace_bases={Item: None}) # still an Item via Adt +@annotate(Enum, replace_bases={Item: None}) class _: """ An enum declaration. @@ -1049,6 +1079,12 @@ class _: ``` """ + attrs: drop + generic_param_list: drop + name: drop + visibility: drop + where_clause: drop + @annotate(ExternBlock) class _: @@ -1146,6 +1182,7 @@ class _: } ``` """ + label: drop loop_body: drop @@ -1162,6 +1199,7 @@ class _: ``` """ + @annotate(FormatArgsArg, cfg=True) @qltest.test_with(FormatArgsExpr) class _: @@ -1185,6 +1223,7 @@ class _: format_args!("{x}, {y}"); ``` """ + formats: list["Format"] | child | synth @@ -1279,6 +1318,7 @@ class _: enum E {} ``` """ + attribute_macro_expansion: optional[MacroItems] | child | rust.detach @@ -1361,6 +1401,7 @@ class _: println!("Hello, world!"); ``` """ + macro_call_expansion: optional[AstNode] | child | rust.detach @@ -1414,6 +1455,7 @@ class MacroBlockExpr(Expr): my_macro!(); // this macro expands to a sequence of statements (and an expression) ``` """ + __cfg__ = True statements: list[Stmt] | child @@ -1530,6 +1572,7 @@ class ParamBase(AstNode): """ A normal parameter, `Param`, or a self parameter `SelfParam`. """ + attrs: list["Attr"] | child type_repr: optional["TypeRepr"] | child @@ -1549,6 +1592,7 @@ class _: } ``` """ + attrs: drop type_repr: drop @@ -1603,6 +1647,7 @@ class _: - `widgets(..)` - `` """ + type_repr: optional["TypeRepr"] | child | rust.detach trait_type_repr: optional["PathTypeRepr"] | child | rust.detach @@ -1777,6 +1822,7 @@ class _: } ``` """ + attrs: drop type_repr: drop @@ -1835,16 +1881,30 @@ class _: // ^^^^^^^^^ ``` """ - statements: _ | doc("statements of this statement list") | desc(""" + + statements: ( + _ + | doc("statements of this statement list") + | desc( + """ The statements of a `StmtList` do not include any tail expression, which can be accessed with predicates such as `getTailExpr`. - """) - tail_expr: _ | doc("tail expression of this statement list") | desc(""" + """ + ) + ) + tail_expr: ( + _ + | doc("tail expression of this statement list") + | desc( + """ The tail expression is the expression at the end of a block, that determines the block's value. - """) + """ + ) + ) -@annotate(Struct, replace_bases={Item: None}) # still an Item via Adt + +@annotate(Struct, replace_bases={Item: None}) class _: """ A Struct. For example: @@ -1855,7 +1915,13 @@ class _: } ``` """ + field_list: _ | ql.db_table_name("struct_field_lists_") + attrs: drop + generic_param_list: drop + name: drop + visibility: drop + where_clause: drop @annotate(TokenTree) @@ -2025,7 +2091,7 @@ class _: """ -@annotate(Union, replace_bases={Item: None}) # still an Item via Adt +@annotate(Union, replace_bases={Item: None}) class _: """ A union declaration. @@ -2036,6 +2102,12 @@ class _: ``` """ + attrs: drop + generic_param_list: drop + name: drop + visibility: drop + where_clause: drop + @annotate(Use) class _: @@ -2152,6 +2224,7 @@ class _: } ``` """ + label: drop loop_body: drop @@ -2160,10 +2233,17 @@ class _: class _: param_list: drop attrs: drop - has_implementation: predicate | doc("this function has an implementation") | desc(""" + has_implementation: ( + predicate + | doc("this function has an implementation") + | desc( + """ This is the same as `hasBody` for source code, but for library code (for which we always skip the body), this will hold when the body was present in the original code. - """) | rust.detach + """ + ) + | rust.detach + ) @annotate(ClosureExpr, add_bases=[Callable]) @@ -2191,35 +2271,61 @@ class Format(Locatable): println!("Value {value:#width$.precision$}"); ``` """ + parent: FormatArgsExpr index: int - argument_ref: optional["FormatArgument"] | child | desc(""" + argument_ref: ( + optional["FormatArgument"] + | child + | desc( + """ For example `name` and `0` in: ```rust let name = "Alice"; println!("{name} in wonderland"); println!("{0} in wonderland", name); ``` - """) - width_argument: optional["FormatArgument"] | child | desc(""" + """ + ) + ) + width_argument: ( + optional["FormatArgument"] + | child + | desc( + """ For example `width` and `1` in: ```rust let width = 6; println!("{:width$}", PI); println!("{:1$}", PI, width); ``` - """) - precision_argument: optional["FormatArgument"] | child | desc(""" + """ + ) + ) + precision_argument: ( + optional["FormatArgument"] + | child + | desc( + """ For example `prec` and `1` in: ```rust let prec = 6; println!("{:.prec$}", PI); println!("{:.1$}", PI, prec); ``` - """) + """ + ) + ) -@synth.on_arguments(parent=FormatArgsExpr, index=int, kind=int, name=string, positional=boolean, offset=int) +@synth.on_arguments( + parent=FormatArgsExpr, + index=int, + kind=int, + name=string, + positional=boolean, + offset=int, +) @qltest.test_with(FormatArgsExpr) class FormatArgument(Locatable): """ @@ -2232,6 +2338,7 @@ class FormatArgument(Locatable): println!("Value {0:#1$.2$}", value, width, precision); ``` """ + parent: Format variable: optional[FormatTemplateVariableAccess] | child diff --git a/rust/schema/ast.py b/rust/schema/ast.py index d338c7a1636..5d8a7393ea6 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -2,7 +2,7 @@ from .prelude import * -class Adt(AstNode, ): +class TypeItem(AstNode, ): pass class AsmOperand(AstNode, ): @@ -206,7 +206,7 @@ class ContinueExpr(Expr, ): class DynTraitTypeRepr(TypeRepr, ): type_bound_list: optional["TypeBoundList"] | child -class Enum(Adt, Item, ): +class Enum(TypeItem, Item, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child @@ -623,7 +623,7 @@ class StmtList(AstNode, ): statements: list["Stmt"] | child tail_expr: optional["Expr"] | child -class Struct(Adt, Item, ): +class Struct(TypeItem, Item, ): attrs: list["Attr"] | child field_list: optional["FieldList"] | child generic_param_list: optional["GenericParamList"] | child @@ -712,7 +712,7 @@ class TypeParam(GenericParam, ): class UnderscoreExpr(Expr, ): attrs: list["Attr"] | child -class Union(Adt, Item, ): +class Union(TypeItem, Item, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index 062bb537ba2..e2c7978d2b6 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.12 + +No user-facing changes. + ## 0.0.11 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.12.md b/shared/concepts/change-notes/released/0.0.12.md new file mode 100644 index 00000000000..0e206033bc4 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.12.md @@ -0,0 +1,3 @@ +## 0.0.12 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index e679dc42092..997fb8da83c 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.11 +lastReleaseVersion: 0.0.12 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index fa25c3b42fc..8c44a51ff93 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.12-dev +version: 0.0.13-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index c35db78c988..523f7667b24 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.22 + +No user-facing changes. + ## 2.0.21 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.22.md b/shared/controlflow/change-notes/released/2.0.22.md new file mode 100644 index 00000000000..8a2611adad2 --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.22.md @@ -0,0 +1,3 @@ +## 2.0.22 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index a572e88bffd..980bdfe195b 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.21 +lastReleaseVersion: 2.0.22 diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index c0d07278b9a..b313afcdb6b 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -1280,39 +1280,38 @@ module Make< } } - signature predicate guardChecksSig(Guard g, Expr e, boolean branch); + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv); bindingset[this] - signature class StateSig; + signature class ParamSig; - private module WithState { - signature predicate guardChecksSig(Guard g, Expr e, boolean branch, State state); + private module WithParam { + signature predicate guardChecksSig(Guard g, Expr e, GuardValue gv, P par); } /** * Extends a `BarrierGuard` input predicate with wrapped invocations. */ module ValidationWrapper { - private predicate guardChecksWithState(Guard g, Expr e, boolean branch, Unit state) { - guardChecks0(g, e, branch) and exists(state) + private predicate guardChecksWithParam(Guard g, Expr e, GuardValue gv, Unit par) { + guardChecks0(g, e, gv) and exists(par) } - private module StatefulWrapper = ValidationWrapperWithState; + private module ParameterizedWrapper = + ParameterizedValidationWrapper; /** * Holds if the guard `g` validates the SSA definition `def` upon evaluating to `val`. */ predicate guardChecksDef(Guard g, SsaDefinition def, GuardValue val) { - StatefulWrapper::guardChecksDef(g, def, val, _) + ParameterizedWrapper::guardChecksDef(g, def, val, _) } } /** * Extends a `BarrierGuard` input predicate with wrapped invocations. */ - module ValidationWrapperWithState< - StateSig State, WithState::guardChecksSig/4 guardChecks0> - { + module ParameterizedValidationWrapper::guardChecksSig/4 guardChecks0> { private import WrapperGuard /** @@ -1321,12 +1320,12 @@ module Make< * parameter has been validated by the given guard. */ private predicate validReturnInValidationWrapper( - ReturnExpr ret, ParameterPosition ppos, GuardValue retval, State state + ReturnExpr ret, ParameterPosition ppos, GuardValue retval, P par ) { exists(NonOverridableMethod m, SsaParameterInit param, Guard guard, GuardValue val | m.getAReturnExpr() = ret and param.getParameter() = m.getParameter(ppos) and - guardChecksDef(guard, param, val, state) + guardChecksDef(guard, param, val, par) | guard.valueControls(ret.getBasicBlock(), val) and relevantReturnExprValue(m, ret, retval) @@ -1341,7 +1340,7 @@ module Make< * that the argument has been validated by the given guard. */ private NonOverridableMethod validationWrapper( - ParameterPosition ppos, GuardValue retval, State state + ParameterPosition ppos, GuardValue retval, P par ) { forex(ReturnExpr ret | result.getAReturnExpr() = ret and @@ -1350,12 +1349,12 @@ module Make< disjointValues(notRetval, retval) ) | - validReturnInValidationWrapper(ret, ppos, retval, state) + validReturnInValidationWrapper(ret, ppos, retval, par) ) or exists(SsaParameterInit param, BasicBlock bb, Guard guard, GuardValue val | param.getParameter() = result.getParameter(ppos) and - guardChecksDef(guard, param, val, state) and + guardChecksDef(guard, param, val, par) and guard.valueControls(bb, val) and normalExitBlock(bb) and retval = TException(false) @@ -1365,12 +1364,12 @@ module Make< /** * Holds if the guard `g` validates the expression `e` upon evaluating to `val`. */ - private predicate guardChecks(Guard g, Expr e, GuardValue val, State state) { - guardChecks0(g, e, val.asBooleanValue(), state) + private predicate guardChecks(Guard g, Expr e, GuardValue val, P par) { + guardChecks0(g, e, val, par) or exists(NonOverridableMethodCall call, ParameterPosition ppos, ArgumentPosition apos | g = call and - call.getMethod() = validationWrapper(ppos, val, state) and + call.getMethod() = validationWrapper(ppos, val, par) and call.getArgument(apos) = e and parameterMatch(pragma[only_bind_out](ppos), pragma[only_bind_out](apos)) ) @@ -1379,9 +1378,9 @@ module Make< /** * Holds if the guard `g` validates the SSA definition `def` upon evaluating to `val`. */ - predicate guardChecksDef(Guard g, SsaDefinition def, GuardValue val, State state) { + predicate guardChecksDef(Guard g, SsaDefinition def, GuardValue val, P par) { exists(Expr e | - guardChecks(g, e, val, state) and + guardChecks(g, e, val, par) and guardReadsSsaVar(e, def) ) } diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index ac8be746d3f..37ae8d21aaf 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.22-dev +version: 2.0.23-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index a447303727c..8ade6c20ef4 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.22 + +No user-facing changes. + ## 2.0.21 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.22.md b/shared/dataflow/change-notes/released/2.0.22.md new file mode 100644 index 00000000000..8a2611adad2 --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.22.md @@ -0,0 +1,3 @@ +## 2.0.22 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index a572e88bffd..980bdfe195b 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.21 +lastReleaseVersion: 2.0.22 diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 6cc9d6f88a4..a8260440938 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -215,6 +215,35 @@ module Make< ] } + class AcceptingValue extends string { + AcceptingValue() { + this = + [ + "true", + "false", + "no-exception", + "zero", + "not-zero", + "null", + "not-null", + ] + } + + predicate isTrue() { this = "true" } + + predicate isFalse() { this = "false" } + + predicate isNoException() { this = "no-exception" } + + predicate isZero() { this = "zero" } + + predicate isNotZero() { this = "not-zero" } + + predicate isNull() { this = "null" } + + predicate isNotNull() { this = "not-null" } + } + /** * A class used to represent provenance values for MaD models. * @@ -633,6 +662,30 @@ module Make< unsupportedCallable(callable, _, _, _) } + private predicate isRelevantSource( + SourceElement e, string output, string kind, Provenance provenance, string model + ) { + e.isSource(output, kind, provenance, model) and + ( + provenance.isManual() + or + provenance.isGenerated() and + not exists(Provenance p | p.isManual() and e.isSource(_, kind, p, _)) + ) + } + + private predicate isRelevantSink( + SinkElement e, string input, string kind, Provenance provenance, string model + ) { + e.isSink(input, kind, provenance, model) and + ( + provenance.isManual() + or + provenance.isGenerated() and + not exists(Provenance p | p.isManual() and e.isSink(_, kind, p, _)) + ) + } + private predicate summarySpec(string spec) { exists(SummarizedCallable c | c.propagatesFlow(spec, _, _, _) @@ -640,9 +693,9 @@ module Make< c.propagatesFlow(_, spec, _, _) ) or - any(SourceElement s).isSource(spec, _, _, _) + isRelevantSource(_, spec, _, _, _) or - any(SinkElement s).isSink(spec, _, _, _) + isRelevantSink(_, spec, _, _, _) } import AccessPathSyntax::AccessPath @@ -1005,7 +1058,7 @@ module Make< SourceElement source, SummaryComponentStack s, string kind, string model ) { exists(string outSpec | - source.isSource(outSpec, kind, _, model) and + isRelevantSource(source, outSpec, kind, _, model) and External::interpretSpec(outSpec, s) ) } @@ -1028,7 +1081,7 @@ module Make< SinkElement sink, SummaryComponentStack s, string kind, string model ) { exists(string inSpec | - sink.isSink(inSpec, kind, _, model) and + isRelevantSink(sink, inSpec, kind, _, model) and External::interpretSpec(inSpec, s) ) } @@ -2015,6 +2068,12 @@ module Make< not exists(interpretComponent(c)) } + /** Holds if `acceptingvalue` is not a valid barrier guard accepting-value. */ + bindingset[acceptingvalue] + predicate invalidAcceptingValue(string acceptingvalue) { + not acceptingvalue instanceof AcceptingValue + } + /** Holds if `provenance` is not a valid provenance value. */ bindingset[provenance] predicate invalidProvenance(string provenance) { not provenance instanceof Provenance } @@ -2052,6 +2111,23 @@ module Make< Element n, string input, string kind, Provenance provenance, string model ); + /** + * Holds if an external barrier specification exists for `n` with output specification + * `output` and kind `kind`. + */ + predicate barrierElement( + Element n, string output, string kind, Provenance provenance, string model + ); + + /** + * Holds if an external barrier guard specification exists for `n` with input + * specification `input`, accepting value `acceptingvalue`, and kind `kind`. + */ + predicate barrierGuardElement( + Element n, string input, AcceptingValue acceptingvalue, string kind, + Provenance provenance, string model + ); + class SourceOrSinkElement extends Element; /** An entity used to interpret a source/sink specification. */ @@ -2105,7 +2181,9 @@ module Make< private predicate sourceSinkSpec(string spec) { sourceElement(_, spec, _, _, _) or - sinkElement(_, spec, _, _, _) + sinkElement(_, spec, _, _, _) or + barrierElement(_, spec, _, _, _) or + barrierGuardElement(_, spec, _, _, _, _) } private module AccessPath = AccessPathSyntax::AccessPath; @@ -2160,11 +2238,34 @@ module Make< ) } + private predicate barrierElementRef( + InterpretNode ref, SourceSinkAccessPath output, string kind, string model + ) { + exists(SourceOrSinkElement e | + barrierElement(e, output, kind, _, model) and + if outputNeedsReferenceExt(output.getToken(0)) + then e = ref.getCallTarget() + else e = ref.asElement() + ) + } + + private predicate barrierGuardElementRef( + InterpretNode ref, SourceSinkAccessPath input, AcceptingValue acceptingvalue, string kind, + string model + ) { + exists(SourceOrSinkElement e | + barrierGuardElement(e, input, acceptingvalue, kind, _, model) and + if inputNeedsReferenceExt(input.getToken(0)) + then e = ref.getCallTarget() + else e = ref.asElement() + ) + } + /** Holds if the first `n` tokens of `output` resolve to the given interpretation. */ private predicate interpretOutput( SourceSinkAccessPath output, int n, InterpretNode ref, InterpretNode node ) { - sourceElementRef(ref, output, _, _) and + (sourceElementRef(ref, output, _, _) or barrierElementRef(ref, output, _, _)) and n = 0 and ( if output = "" @@ -2220,7 +2321,7 @@ module Make< private predicate interpretInput( SourceSinkAccessPath input, int n, InterpretNode ref, InterpretNode node ) { - sinkElementRef(ref, input, _, _) and + (sinkElementRef(ref, input, _, _) or barrierGuardElementRef(ref, input, _, _, _)) and n = 0 and ( if input = "" @@ -2280,6 +2381,30 @@ module Make< ) } + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + predicate isBarrierNode(InterpretNode node, string kind, string model) { + exists(InterpretNode ref, SourceSinkAccessPath output | + barrierElementRef(ref, output, kind, model) and + interpretOutput(output, output.getNumToken(), ref, node) + ) + } + + /** + * Holds if `node` is specified as a barrier guard argument with the + * given kind in a MaD flow model. + */ + predicate isBarrierGuardNode( + InterpretNode node, AcceptingValue acceptingvalue, string kind, string model + ) { + exists(InterpretNode ref, SourceSinkAccessPath input | + barrierGuardElementRef(ref, input, acceptingvalue, kind, model) and + interpretInput(input, input.getNumToken(), ref, node) + ) + } + final private class SourceOrSinkElementFinal = SourceOrSinkElement; signature predicate sourceOrSinkElementSig( diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 523275d527a..33335ec904f 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.22-dev +version: 2.0.23-dev groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index f57268a5033..27e5fb03dfa 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.38.md b/shared/mad/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/mad/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/mad/codeql/mad/ModelValidation.qll b/shared/mad/codeql/mad/ModelValidation.qll index 5d4698bed1d..9791355d03a 100644 --- a/shared/mad/codeql/mad/ModelValidation.qll +++ b/shared/mad/codeql/mad/ModelValidation.qll @@ -173,7 +173,7 @@ module KindValidation { or exists(string kind, string msg | Config::sinkKind(kind) | not kind instanceof ValidSinkKind and - msg = "Invalid kind \"" + kind + "\" in sink model." and + msg = "Invalid kind \"" + kind + "\" in sink or barrier model." and // The part of this message that refers to outdated sink kinds can be deleted after June 1st, 2024. if kind instanceof OutdatedSinkKind then result = msg + " " + kind.(OutdatedSinkKind).outdatedMessage() diff --git a/shared/mad/codeql/mad/static/ModelsAsData.qll b/shared/mad/codeql/mad/static/ModelsAsData.qll new file mode 100644 index 00000000000..84daaa9b6c8 --- /dev/null +++ b/shared/mad/codeql/mad/static/ModelsAsData.qll @@ -0,0 +1,345 @@ +overlay[local?] +module; + +signature module ExtensionsSig { + /** + * Holds if a source model exists for the given parameters. + */ + predicate sourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a sink model exists for the given parameters. + */ + predicate sinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a barrier model exists for the given parameters. + */ + predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a barrier guard model exists for the given parameters. + */ + predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, + QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a summary model exists for the given parameters. + */ + predicate summaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId + ); + + /** + * Holds if a neutral model exists for the given parameters. + */ + predicate neutralModel( + string namespace, string type, string name, string signature, string kind, string provenance + ); + + /** + * Holds if the namespace `namespace` is part of the group `group`. + */ + predicate namespaceGrouping(string group, string namespace); +} + +signature module InputSig { + /** + * Holds if a source model exists for the given parameters. + */ + default predicate additionalSourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + none() + } + + /** + * Holds if a sink model exists for the given parameters. + */ + default predicate additionalSinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + none() + } + + /** + * Holds if a summary model exists for the given parameters. + */ + default predicate additionalSummaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + none() + } + + /** Gets the separator used between namespace segments. */ + default string namespaceSegmentSeparator() { result = "." } + + /** Gets a cleaned-up version of the namespace for presentation in model coverage. */ + bindingset[ns] + default string cleanNamespace(string ns) { result = ns } +} + +module ModelsAsData { + /** + * Holds if the given extension tuple `madId` should pretty-print as `model`. + * + * Barrier models are included for completeness even though they will not show up in a path. + * + * This predicate should only be used in tests. + */ + predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance + | + Extensions::sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, madId) + | + model = + "Source: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + output + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance + | + Extensions::sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, + provenance, madId) + | + model = + "Sink: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + "; " + + ext + "; " + input + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance + | + Extensions::barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, + provenance, madId) + | + model = + "Barrier: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + output + "; " + kind + "; " + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance + | + Extensions::barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, + acceptingvalue, kind, provenance, madId) + | + model = + "Barrier Guard: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + + signature + "; " + ext + "; " + input + "; " + acceptingvalue + "; " + kind + "; " + + provenance + ) + or + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance + | + Extensions::summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, + provenance, madId) + | + model = + "Summary: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + signature + + "; " + ext + "; " + input + "; " + output + "; " + kind + "; " + provenance + ) + } + + /** Gets the prefix for a group of namespaces. */ + private string groupPrefix() { result = "group:" } + + /** + * Gets a namespace represented by `namespaceOrGroup`. + * + * If `namespaceOrGroup` is of the form `group:` then `result` is a + * namespace in the group ``, as determined by `namespaceGrouping`. + * Otherwise, `result` is `namespaceOrGroup`. + */ + bindingset[namespaceOrGroup] + private string getNamespace(string namespaceOrGroup) { + not exists(string group | namespaceOrGroup = groupPrefix() + group) and + result = namespaceOrGroup + or + exists(string group | + Extensions::namespaceGrouping(group, result) and + namespaceOrGroup = groupPrefix() + group + ) + } + + /** + * Holds if a source model exists for the given parameters. + */ + predicate sourceModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + exists(QlBuiltins::ExtensionId madId | + Extensions::sourceModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, + kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSourceModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, + kind, provenance, model) + ) + } + + /** + * Holds if a sink model exists for the given parameters. + */ + predicate sinkModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + exists(QlBuiltins::ExtensionId madId | + Extensions::sinkModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSinkModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + kind, provenance, model) + ) + } + + /** Holds if a barrier model exists for the given parameters. */ + predicate barrierModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string output, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | + namespace = getNamespace(namespaceOrGroup) and + Extensions::barrierModel(namespaceOrGroup, type, subtypes, name, signature, ext, output, kind, + provenance, madId) and + model = "MaD:" + madId.toString() + ) + } + + /** Holds if a barrier guard model exists for the given parameters. */ + predicate barrierGuardModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string acceptingvalue, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | + namespace = getNamespace(namespaceOrGroup) and + Extensions::barrierGuardModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + acceptingvalue, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + } + + /** + * Holds if a summary model exists for the given parameters. + */ + predicate summaryModel( + string namespace, string type, boolean subtypes, string name, string signature, string ext, + string input, string output, string kind, string provenance, string model + ) { + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + exists(QlBuiltins::ExtensionId madId | + Extensions::summaryModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + output, kind, provenance, madId) and + model = "MaD:" + madId.toString() + ) + or + Input::additionalSummaryModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, + output, kind, provenance, model) + ) + } + + /** + * Holds if a neutral model exists for the given parameters. + */ + predicate neutralModel( + string namespace, string type, string name, string signature, string kind, string provenance + ) { + exists(string namespaceOrGroup | namespace = getNamespace(namespaceOrGroup) | + Extensions::neutralModel(namespaceOrGroup, type, name, signature, kind, provenance) + ) + } + + private predicate relevantNamespace(string namespace) { + exists(string ns | namespace = Input::cleanNamespace(ns) | + sourceModel(ns, _, _, _, _, _, _, _, _, _) or + sinkModel(ns, _, _, _, _, _, _, _, _, _) or + summaryModel(ns, _, _, _, _, _, _, _, _, _, _) + ) + } + + private predicate namespaceLink(string shortns, string longns) { + relevantNamespace(shortns) and + relevantNamespace(longns) and + longns.prefix(longns.indexOf(Input::namespaceSegmentSeparator())) = shortns + } + + private predicate canonicalNamespace(string namespace) { + relevantNamespace(namespace) and not namespaceLink(_, namespace) + } + + private predicate canonicalNamespaceLink(string namespace, string subns) { + canonicalNamespace(namespace) and + (subns = namespace or namespaceLink(namespace, subns)) + } + + /** + * Holds if MaD framework coverage of `namespace` is `n` api endpoints of the + * kind `(kind, part)`, and `namespaces` is the number of subnamespaces of + * `namespace` which have MaD framework coverage (including `namespace` + * itself). + */ + predicate modelCoverage(string namespace, int namespaces, string kind, string part, int n) { + namespaces = strictcount(string subns | canonicalNamespaceLink(namespace, subns)) and + ( + part = "source" and + n = + strictcount(string subns, string subnsClean, string type, boolean subtypes, string name, + string signature, string ext, string output, string provenance | + canonicalNamespaceLink(namespace, subnsClean) and + subnsClean = Input::cleanNamespace(subns) and + sourceModel(subns, type, subtypes, name, signature, ext, output, kind, provenance, _) + ) + or + part = "sink" and + n = + strictcount(string subns, string subnsClean, string type, boolean subtypes, string name, + string signature, string ext, string input, string provenance | + canonicalNamespaceLink(namespace, subnsClean) and + subnsClean = Input::cleanNamespace(subns) and + sinkModel(subns, type, subtypes, name, signature, ext, input, kind, provenance, _) + ) + or + part = "summary" and + n = + strictcount(string subns, string subnsClean, string type, boolean subtypes, string name, + string signature, string ext, string input, string output, string provenance | + canonicalNamespaceLink(namespace, subnsClean) and + subnsClean = Input::cleanNamespace(subns) and + summaryModel(subns, type, subtypes, name, signature, ext, input, output, kind, provenance, + _) + ) + ) + } +} diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index a0429dd8ea0..271e93b5c0b 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 4f4b3189bb4..28235d47f61 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.16 + +No user-facing changes. + ## 0.0.15 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.16.md b/shared/quantum/change-notes/released/0.0.16.md new file mode 100644 index 00000000000..62b5521ea01 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.16.md @@ -0,0 +1,3 @@ +## 0.0.16 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index dff35216fc6..a49f7be4cff 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.15 +lastReleaseVersion: 0.0.16 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index aabdb5f63ea..1f08c524321 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.16-dev +version: 0.0.17-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 99a7f790327..c1a36a57de3 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.38.md b/shared/rangeanalysis/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 66c25d137f0..f69da48d3fe 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index bfca1c264b2..0002bcde38e 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.38.md b/shared/regex/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/regex/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index addf0bb8af6..522248c9f30 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 46a9b5f6985..1dfec3daacc 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.14 + +No user-facing changes. + ## 2.0.13 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.14.md b/shared/ssa/change-notes/released/2.0.14.md new file mode 100644 index 00000000000..13190ad53e3 --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.14.md @@ -0,0 +1,3 @@ +## 2.0.14 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 30d169d6eb8..23aa0864b29 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.13 +lastReleaseVersion: 2.0.14 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 5271eda059b..30854239413 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.14-dev +version: 2.0.15-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index b4d2815a622..00273047253 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.38.md b/shared/threat-models/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 35beca0110a..6b972def924 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.38-dev +version: 1.0.39-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 2760cd1f529..ad2c71497db 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.38.md b/shared/tutorial/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index c6ca9c2088e..a1ea6bd35cf 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 2fc9a954f23..38e81a0275d 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.38.md b/shared/typeflow/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index f474a085b54..e2e41e87b79 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index 172f2ee2b29..d5252bfc0c4 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.19 + +No user-facing changes. + ## 0.0.18 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.19.md b/shared/typeinference/change-notes/released/0.0.19.md new file mode 100644 index 00000000000..914e4c9074d --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.19.md @@ -0,0 +1,3 @@ +## 0.0.19 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index a0d2bc59d97..f406319f372 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.18 +lastReleaseVersion: 0.0.19 diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index bf107c7d3f5..f53f15b5a6a 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -224,25 +224,17 @@ signature module InputSig1 { module Make1 Input1> { private import Input1 + private import codeql.util.UnboundList as UnboundListImpl - private module TypeParameter { - private import codeql.util.DenseRank + private module UnboundListInput implements UnboundListImpl::InputSig { + class Element = TypeParameter; - private module DenseRankInput implements DenseRankInputSig { - class Ranked = TypeParameter; + predicate getId = getTypeParameterId/1; - predicate getRank = getTypeParameterId/1; - } - - int getRank(TypeParameter tp) { tp = DenseRank::denseRank(result) } - - string encode(TypeParameter tp) { result = getRank(tp).toString() } - - bindingset[s] - TypeParameter decode(string s) { encode(result) = s } + predicate getLengthLimit = getTypePathLimit/0; } - final private class String = string; + private import UnboundListImpl::Make /** * A path into a type. @@ -274,101 +266,10 @@ module Make1 Input1> { * implementation uses unique type parameter identifiers, in order to not mix * up type parameters from different types. */ - class TypePath extends String { - bindingset[this] - TypePath() { exists(this) } - - bindingset[this] - private TypeParameter getTypeParameter(int i) { - result = TypeParameter::decode(this.splitAt(".", i)) - } - - /** Gets a textual representation of this type path. */ - bindingset[this] - string toString() { - result = - concat(int i, TypeParameter tp | - tp = this.getTypeParameter(i) - | - tp.toString(), "." order by i - ) - } - - /** Holds if this type path is empty. */ - predicate isEmpty() { this = "" } - - /** Gets the length of this path. */ - bindingset[this] - pragma[inline_late] - int length() { - // Same as - // `result = count(this.indexOf("."))` - // but performs better because it doesn't use an aggregate - result = this.regexpReplaceAll("[0-9]+", "").length() - } - - /** Gets the path obtained by appending `suffix` onto this path. */ - bindingset[this, suffix] - TypePath append(TypePath suffix) { - result = this + suffix and - ( - not exists(getTypePathLimit()) - or - result.length() <= getTypePathLimit() - ) - } - - /** - * Gets the path obtained by appending `suffix` onto this path. - * - * Unlike `append`, this predicate has `result` in the binding set, - * so there is no need to check the length of `result`. - */ - bindingset[this, result] - TypePath appendInverse(TypePath suffix) { suffix = result.stripPrefix(this) } - - /** Gets the path obtained by removing `prefix` from this path. */ - bindingset[this, prefix] - TypePath stripPrefix(TypePath prefix) { this = prefix + result } - - /** Holds if this path starts with `tp`, followed by `suffix`. */ - bindingset[this] - predicate isCons(TypeParameter tp, TypePath suffix) { - exists(string regexp | regexp = "([0-9]+)\\.(.*)" | - tp = TypeParameter::decode(this.regexpCapture(regexp, 1)) and - suffix = this.regexpCapture(regexp, 2) - ) - } - - /** Holds if this path starts with `prefix`, followed by `tp`. */ - bindingset[this] - predicate isSnoc(TypePath prefix, TypeParameter tp) { - exists(string regexp | regexp = "(|.+\\.)([0-9]+)\\." | - prefix = this.regexpCapture(regexp, 1) and - tp = TypeParameter::decode(this.regexpCapture(regexp, 2)) - ) - } - - /** Gets the head of this path, if any. */ - bindingset[this] - TypeParameter getHead() { result = this.getTypeParameter(0) } - } + class TypePath = UnboundList; /** Provides predicates for constructing `TypePath`s. */ - module TypePath { - /** Gets the empty type path. */ - TypePath nil() { result.isEmpty() } - - /** Gets the singleton type path `tp`. */ - TypePath singleton(TypeParameter tp) { result = TypeParameter::encode(tp) + "." } - - /** - * Gets the type path obtained by appending the singleton type path `tp` - * onto `suffix`. - */ - bindingset[suffix] - TypePath cons(TypeParameter tp, TypePath suffix) { result = singleton(tp).append(suffix) } - } + module TypePath = UnboundList; /** * A class that has a type tree associated with it. @@ -600,11 +501,7 @@ module Make1 Input1> { private TypeParameter getNthTypeParameter(TypeAbstraction abs, int i) { result = - rank[i + 1](TypeParameter tp | - tp = abs.getATypeParameter() - | - tp order by TypeParameter::getRank(tp) - ) + rank[i + 1](TypeParameter tp | tp = abs.getATypeParameter() | tp order by getRank(tp)) } /** @@ -705,7 +602,8 @@ module Make1 Input1> { } /** - * Holds if `app` is _not_ a possible instantiation of `constraint`. + * Holds if `app` is _not_ a possible instantiation of `constraint`, because `app` + * and `constraint` differ on concrete types at `path`. * * This is an approximation of `not isInstantiationOf(app, abs, constraint)`, but * defined without a negative occurrence of `isInstantiationOf`. @@ -719,9 +617,11 @@ module Make1 Input1> { * `isInstantiationOf` nor `isNotInstantiationOf` will hold. */ pragma[nomagic] - predicate isNotInstantiationOf(App app, TypeAbstraction abs, Constraint constraint) { + predicate isNotInstantiationOf( + App app, TypeAbstraction abs, Constraint constraint, TypePath path + ) { // `app` and `constraint` differ on a concrete type - exists(Type t, Type t2, TypePath path | + exists(Type t, Type t2 | t = resolveTypeAt(app, abs, constraint, path) and not t = abs.getATypeParameter() and app.getTypeAt(path) = t2 and @@ -983,6 +883,9 @@ module Make1 Input1> { } } + private module SatisfiesConstraintIsInstantiationOf = + IsInstantiationOf; + /** * Holds if `tt` satisfies `constraint` through `abs`, `sub`, and `constraintMention`. */ @@ -1004,13 +907,21 @@ module Make1 Input1> { // constraint we need to find the right implementation, which is the // one where the type instantiates the precondition. if multipleConstraintImplementations(type, constraint) - then - IsInstantiationOf::isInstantiationOf(tt, - abs, condition) + then SatisfiesConstraintIsInstantiationOf::isInstantiationOf(tt, abs, condition) else any() ) } + pragma[nomagic] + private predicate isNotInstantiationOf( + HasTypeTree tt, TypeAbstraction abs, TypeMention condition, Type root + ) { + exists(TypePath path | + SatisfiesConstraintIsInstantiationOf::isNotInstantiationOf(tt, abs, condition, path) and + path.isCons(root.getATypeParameter(), _) + ) + } + /** * Holds if `tt` does not satisfy `constraint`. * @@ -1040,8 +951,7 @@ module Make1 Input1> { forex(TypeAbstraction abs, TypeMention condition | rootTypesSatisfaction(type, constraint, abs, condition, _) | - IsInstantiationOf::isNotInstantiationOf(tt, - abs, condition) + isNotInstantiationOf(tt, abs, condition, type) ) ) ) diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index fb32a3f11f2..0a5b99e7f11 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.19-dev +version: 0.0.20-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 52da09238e5..81415ed396f 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.22 + +No user-facing changes. + ## 2.0.21 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.22.md b/shared/typetracking/change-notes/released/2.0.22.md new file mode 100644 index 00000000000..8a2611adad2 --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.22.md @@ -0,0 +1,3 @@ +## 2.0.22 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index a572e88bffd..980bdfe195b 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.21 +lastReleaseVersion: 2.0.22 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 5b9eac9fed3..e657f74f636 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.22-dev +version: 2.0.23-dev groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index bfc79532079..6c9dced04a3 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.38.md b/shared/typos/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/typos/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 074a90c7d5c..31dfb14955f 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index e3ff0ae2f34..30fd964656d 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.25 + +No user-facing changes. + ## 2.0.24 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.25.md b/shared/util/change-notes/released/2.0.25.md new file mode 100644 index 00000000000..ca39dd50c69 --- /dev/null +++ b/shared/util/change-notes/released/2.0.25.md @@ -0,0 +1,3 @@ +## 2.0.25 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 1460df314d5..f54d8620118 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.24 +lastReleaseVersion: 2.0.25 diff --git a/shared/util/codeql/util/UnboundList.qll b/shared/util/codeql/util/UnboundList.qll new file mode 100644 index 00000000000..d9a8b905a13 --- /dev/null +++ b/shared/util/codeql/util/UnboundList.qll @@ -0,0 +1,153 @@ +/** + * Provides logic for representing unbound lists. + * + * The lists are represented internally as strings, and generally it should + * be preferred to instead use a `newtype` representation, but in certain + * cases where this is not feasible (typically because of performance) unbound + * lists can be used. + */ +overlay[local?] +module; + +private import Location + +/** Provides the input to `Make`. */ +signature module InputSig { + /** An element. */ + class Element { + /** Gets a textual representation of this element. */ + string toString(); + + /** Gets the location of this element. */ + Location getLocation(); + } + + /** Gets a unique ID used to identify element `e` amongst all elements. */ + int getId(Element e); + + /** + * Gets a textual representation for element `e`, which will be used in the + * `toString` representation for unbound lists. + */ + default string getElementString(Element e) { result = e.toString() } + + /** Gets an optional length limit for unbound lists. */ + default int getLengthLimit() { none() } +} + +final private class String = string; + +/** Provides the `UnboundList` implementation. */ +module Make Input> { + private import Input + private import codeql.util.DenseRank + + // Use dense ranking to assign compact IDs to elements + private module DenseRankInput implements DenseRankInputSig { + class Ranked = Element; + + predicate getRank = getId/1; + } + + /** Gets the rank of element `e`, which is used internally in the string encoding. */ + int getRank(Element e) { e = DenseRank::denseRank(result) } + + private string encode(Element e) { result = getRank(e).toString() } + + bindingset[s] + private Element decode(string s) { encode(result) = s } + + /** + * An unbound list encoded as a string. + */ + class UnboundList extends String { + bindingset[this] + UnboundList() { exists(this) } + + /** Gets the `i`th element in this list. */ + bindingset[this] + private Element getElement(int i) { result = decode(this.splitAt(".", i)) } + + /** Gets a textual representation of this list. */ + bindingset[this] + string toString() { + result = + concat(int i, Element e | e = this.getElement(i) | getElementString(e), "." order by i) + } + + /** Holds if this list is empty. */ + predicate isEmpty() { this = "" } + + /** Gets the length of this list. */ + bindingset[this] + pragma[inline_late] + int length() { + // Same as + // `result = count(this.indexOf("."))` + // but performs better because it doesn't use an aggregate + result = this.regexpReplaceAll("[0-9]+", "").length() + } + + /** Gets the list obtained by appending `suffix` onto this list. */ + bindingset[this, suffix] + UnboundList append(UnboundList suffix) { + result = this + suffix and + ( + not exists(getLengthLimit()) + or + result.length() <= getLengthLimit() + ) + } + + /** + * Gets the list obtained by appending `suffix` onto this list. + * + * Unlike `append`, this predicate has `result` in the binding set, + * so there is no need to check the length of `result`. + */ + bindingset[this, result] + UnboundList appendInverse(UnboundList suffix) { suffix = result.stripPrefix(this) } + + /** Gets the list obtained by removing `prefix` from this list. */ + bindingset[this, prefix] + UnboundList stripPrefix(UnboundList prefix) { this = prefix + result } + + /** Holds if this list starts with `e`, followed by `suffix`. */ + bindingset[this] + predicate isCons(Element e, UnboundList suffix) { + exists(string regexp | regexp = "([0-9]+)\\.(.*)" | + e = decode(this.regexpCapture(regexp, 1)) and + suffix = this.regexpCapture(regexp, 2) + ) + } + + /** Holds if this list starts with `prefix`, followed by `e`. */ + bindingset[this] + predicate isSnoc(UnboundList prefix, Element e) { + exists(string regexp | regexp = "(|.+\\.)([0-9]+)\\." | + prefix = this.regexpCapture(regexp, 1) and + e = decode(this.regexpCapture(regexp, 2)) + ) + } + + /** Gets the head of this list, if any. */ + bindingset[this] + Element getHead() { result = this.getElement(0) } + } + + /** Provides predicates for constructing `UnboundList`s. */ + module UnboundList { + /** Gets the empty list. */ + UnboundList nil() { result.isEmpty() } + + /** Gets the singleton list `e`. */ + UnboundList singleton(Element e) { result = encode(e) + "." } + + /** + * Gets the list obtained by appending the singleton list `e` + * onto `suffix`. + */ + bindingset[suffix] + UnboundList cons(Element e, UnboundList suffix) { result = singleton(e).append(suffix) } + } +} diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 56307bd090e..fed06829e33 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.25-dev +version: 2.0.26-dev groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index a196b41e650..5c7447a15dd 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.38.md b/shared/xml/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/xml/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 129a49f7d4f..079ebe8518c 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 4a595f06ff9..073ffd8edae 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.38 + +No user-facing changes. + ## 1.0.37 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.38.md b/shared/yaml/change-notes/released/1.0.38.md new file mode 100644 index 00000000000..2c984549c5f --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.38.md @@ -0,0 +1,3 @@ +## 1.0.38 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 9ad62b33247..b14e9763a8d 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.37 +lastReleaseVersion: 1.0.38 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 1785f83701c..1e60008ca44 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.38-dev +version: 1.0.39-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index 806ad0a5ffd..f7825043edd 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -287,6 +287,7 @@ MAP(swift::TypeBase, TypeTag) MAP(swift::BuiltinNonDefaultDistributedActorStorageType, void) // Does not appear in AST/SIL, only used during IRGen MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) MAP(swift::BuiltinUnboundGenericType, void) // Only used during type resolution + MAP(swift::BuiltinImplicitActorType, void) // SIL type MAP(swift::TupleType, TupleTypeTag) MAP(swift::ReferenceStorageType, ReferenceStorageTypeTag) MAP(swift::WeakStorageType, WeakStorageTypeTag) diff --git a/swift/extractor/translators/ExprTranslator.cpp b/swift/extractor/translators/ExprTranslator.cpp index 936bf64940f..a5ae49230b8 100644 --- a/swift/extractor/translators/ExprTranslator.cpp +++ b/swift/extractor/translators/ExprTranslator.cpp @@ -538,7 +538,7 @@ void ExprTranslator::fillSelfApplyExpr(const swift::SelfApplyExpr& expr, void ExprTranslator::fillLookupExpr(const swift::LookupExpr& expr, codeql::LookupExpr& entry) { entry.base = dispatcher.fetchLabel(expr.getBase()); - if (expr.hasDecl()) { + if (expr.hasDecl() && !expr.getDecl().getDecl()->isUnavailable()) { entry.member = dispatcher.fetchLabel(expr.getDecl().getDecl()); } } diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index bcf798b73d4..da1d658ad02 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.3 + +No user-facing changes. + ## 6.1.2 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md b/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md new file mode 100644 index 00000000000..27927802dba --- /dev/null +++ b/swift/ql/lib/change-notes/2025-12-11-swift-6.2.2.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.2.2. \ No newline at end of file diff --git a/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md b/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md new file mode 100644 index 00000000000..b8106460049 --- /dev/null +++ b/swift/ql/lib/change-notes/2025-12-18-swift-6.2.3.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.2.3. \ No newline at end of file diff --git a/swift/ql/lib/change-notes/released/6.1.3.md b/swift/ql/lib/change-notes/released/6.1.3.md new file mode 100644 index 00000000000..34916dd37c8 --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.1.3.md @@ -0,0 +1,3 @@ +## 6.1.3 + +No user-facing changes. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 8a2b5999dee..e641a874973 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.1.2 +lastReleaseVersion: 6.1.3 diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index 46e2e63f2ca..692e3626080 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -159,6 +159,19 @@ module SourceSinkInterpretationInput implements ) } + predicate barrierElement( + Element n, string output, string kind, Public::Provenance provenance, string model + ) { + none() + } + + predicate barrierGuardElement( + Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Public::Provenance provenance, string model + ) { + none() + } + private newtype TInterpretNode = TElement_(Element n) or TNode_(Node n) or diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index a47b2056aea..3e1437148de 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.1.3-dev +version: 6.1.4-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index b019c583059..d3fc5577d26 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.12 + +No user-facing changes. + ## 1.2.11 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/1.2.12.md b/swift/ql/src/change-notes/released/1.2.12.md new file mode 100644 index 00000000000..222316e646d --- /dev/null +++ b/swift/ql/src/change-notes/released/1.2.12.md @@ -0,0 +1,3 @@ +## 1.2.12 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 4bbe68e3fc0..3f5f457c354 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.11 +lastReleaseVersion: 1.2.12 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 56ad421ffac..82f916cc3cc 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.12-dev +version: 1.2.13-dev groups: - swift - queries diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index 970660d813f..2daa0182274 100644 --- a/swift/third_party/resources/resource-dir-linux.zip +++ b/swift/third_party/resources/resource-dir-linux.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e08f6da9166c36d8cc1bb6c3c80f18664feade81ae193daeaada5a9a009748b0 -size 385198654 +oid sha256:ab0279edb35706dbd5c238f6ea29b2a275bb837e1d6485e150801551c7f0740e +size 385211225 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index c802f6fab29..3bcca5372ba 100644 --- a/swift/third_party/resources/resource-dir-macos.zip +++ b/swift/third_party/resources/resource-dir-macos.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e7505fccfe0a537b1583b754fbdd0720415cd9c5e076b542be0d4ec976c955c8 -size 613718859 +oid sha256:e358d99dab2bf07d70a06d8d4119c05ee40e33cdc659ad787595dc56cb405755 +size 613934298 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index 1f1dba6a974..5caeaeb8b5f 100644 --- a/swift/third_party/resources/swift-prebuilt-linux.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-linux.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1aa54c08025679cea2128499040790c4792debcbe214144b099469debe0d488d -size 132780711 +oid sha256:ad8d6611bfd3c749435e44fa25a300082efb308c21c5da1305c65bd2c5d8fec4 +size 132921192 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index c66199543e1..b57ed126f8f 100644 --- a/swift/third_party/resources/swift-prebuilt-macos.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-macos.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5b96fe3e221accd9435f40dbd123d388c3418e1e451751ffd6e67339b063cf7 -size 115298493 +oid sha256:a96536acde3a054a2528feedbb6ffa71fb7ffa6b68f0838f2f007e7474fc0b84 +size 115338478 diff --git a/swift/tools/tracing-config.lua b/swift/tools/tracing-config.lua index fdb0cfd16b6..a29e7b3b953 100644 --- a/swift/tools/tracing-config.lua +++ b/swift/tools/tracing-config.lua @@ -53,6 +53,13 @@ function RegisterExtractorPack(id) strip_unsupported_arg(args, '-stack-check', 0) strip_unsupported_arg(args, '-experimental-skip-non-inlinable-function-bodies-without-types', 0) strip_unsupported_clang_arg(args, '-ivfsstatcache', 1) + strip_unsupported_clang_arg(args, '-fno-odr-hash-protocols', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+disableNonDependentMemberExprInCurrentInstantiation', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+enableAggressiveVLAFolding', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+revert09abecef7bbf', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+thisNoAlignAttr', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+thisNoNullAttr', 0) + strip_unsupported_clang_arg(args, '-clang-vendor-feature=+disableAtImportPrivateFrameworkInImplementationError', 0) -- The four args below are removed to workaround version mismatches due to recent versions -- of Xcode defaulting to explicit modules: strip_unsupported_arg(args, '-disable-implicit-swift-modules', 0) @@ -120,6 +127,9 @@ function RegisterExtractorPack(id) if compilerArguments.argv[1] == '-emit-supported-features' then return nil end + if compilerArguments.argv[1] == '-scan-dependencies' then + return nil + end strip_unsupported_args(compilerArguments.argv) replace_resource_dir(compilerPath, compilerArguments.argv)